@@ -42,49 +42,49 @@ object opaques
42
42
/** All the methods on Array[T] that don't mutate in-place can be used with IArray[T].
43
43
*/
44
44
def [T , U >: T : ClassTag ](arr : IArray [T ]) ++ (that : IArray [U ]): IArray [U ] =
45
- (arr.asInstanceOf [Array [T ]] ++ that.asInstanceOf [Array [U ]]).asInstanceOf
45
+ (arr.asInstanceOf [Array [T ]] ++ that.asInstanceOf [Array [U ]]).asInstanceOf [ IArray [ U ]]
46
46
47
- def [T ](arr : IArray [T ])contains(elem : T ): Boolean =
47
+ def [T ](arr : IArray [T ]) contains(elem : T ): Boolean =
48
48
arr.asInstanceOf [Array [T ]].contains(elem)
49
49
50
50
def [T ](arr : IArray [T ]) count(p : T => Boolean ): Int =
51
51
arr.asInstanceOf [Array [T ]].count(p)
52
52
53
53
def [T ](arr : IArray [T ]) drop(n : Int ): IArray [T ] =
54
- arr.asInstanceOf [Array [T ]].drop(n).asInstanceOf
54
+ arr.asInstanceOf [Array [T ]].drop(n).asInstanceOf [ IArray [ T ]]
55
55
56
56
def [T ](arr : IArray [T ]) dropRight(n : Int ): IArray [T ] =
57
- arr.asInstanceOf [Array [T ]].dropRight(n).asInstanceOf
57
+ arr.asInstanceOf [Array [T ]].dropRight(n).asInstanceOf [ IArray [ T ]]
58
58
59
59
def [T ](arr : IArray [T ]) dropWhile(p : T => Boolean ): IArray [T ] =
60
- arr.asInstanceOf [Array [T ]].dropWhile(p).asInstanceOf
60
+ arr.asInstanceOf [Array [T ]].dropWhile(p).asInstanceOf [ IArray [ T ]]
61
61
62
62
def [T ](arr : IArray [T ]) exists(p : T => Boolean ): IArray [T ] =
63
- arr.asInstanceOf [Array [T ]].exists(p).asInstanceOf
63
+ arr.asInstanceOf [Array [T ]].exists(p).asInstanceOf [ IArray [ T ]]
64
64
65
65
def [T ](arr : IArray [T ]) filter(p : T => Boolean ): IArray [T ] =
66
- arr.asInstanceOf [Array [T ]].filter(p).asInstanceOf
66
+ arr.asInstanceOf [Array [T ]].filter(p).asInstanceOf [ IArray [ T ]]
67
67
68
68
def [T ](arr : IArray [T ]) filterNot(p : T => Boolean ): IArray [T ] =
69
- arr.asInstanceOf [Array [T ]].filterNot(p).asInstanceOf
69
+ arr.asInstanceOf [Array [T ]].filterNot(p).asInstanceOf [ IArray [ T ]]
70
70
71
71
def [T ](arr : IArray [T ]) find(p : T => Boolean ): Option [T ] =
72
- arr.asInstanceOf [Array [T ]].find(p). asInstanceOf
72
+ arr.asInstanceOf [Array [T ]].find(p)
73
73
74
74
def [T , U : ClassTag ](arr : IArray [T ]) flatMap(f : T => IterableOnce [U ]): IArray [U ] =
75
- arr.asInstanceOf [Array [T ]].flatMap(f).asInstanceOf
75
+ arr.asInstanceOf [Array [T ]].flatMap(f).asInstanceOf [ IArray [ U ]]
76
76
77
77
def [T , U : ClassTag ](arr : IArray [T ]) flatten(given T => Iterable [U ]): IArray [U ] =
78
- arr.asInstanceOf [Array [T ]].flatten.asInstanceOf
78
+ arr.asInstanceOf [Array [T ]].flatten.asInstanceOf [ IArray [ U ]]
79
79
80
80
def [T , U >: T : ClassTag ](arr : IArray [T ]) fold(z : U )(op : (U , U ) => U ): U =
81
- arr.asInstanceOf [Array [T ]].fold(z)(op). asInstanceOf
81
+ arr.asInstanceOf [Array [T ]].fold(z)(op)
82
82
83
83
def [T , U >: T : ClassTag ](arr : IArray [T ]) foldLeft(z : U )(op : (U , T ) => U ): U =
84
- arr.asInstanceOf [Array [T ]].foldLeft(z)(op). asInstanceOf
84
+ arr.asInstanceOf [Array [T ]].foldLeft(z)(op)
85
85
86
86
def [T , U >: T : ClassTag ](arr : IArray [T ]) foldRight(z : U )(op : (T , U ) => U ): U =
87
- arr.asInstanceOf [Array [T ]].foldRight(z)(op). asInstanceOf
87
+ arr.asInstanceOf [Array [T ]].foldRight(z)(op)
88
88
89
89
def [T ](arr : IArray [T ]) forall(p : T => Boolean ): Boolean =
90
90
arr.asInstanceOf [Array [T ]].forall(p)
@@ -105,10 +105,10 @@ object opaques
105
105
arr.asInstanceOf [Array [T ]].indexWhere(p, from)
106
106
107
107
def [T ](arr : IArray [T ]) indices : Range =
108
- arr.asInstanceOf [Array [T ]].indices. asInstanceOf
108
+ arr.asInstanceOf [Array [T ]].indices
109
109
110
110
def [T ](arr : IArray [T ]) init : IArray [T ] =
111
- arr.asInstanceOf [Array [T ]].init.asInstanceOf
111
+ arr.asInstanceOf [Array [T ]].init.asInstanceOf [ IArray [ T ]]
112
112
113
113
def [T ](arr : IArray [T ]) isEmpty : Boolean =
114
114
arr.asInstanceOf [Array [T ]].isEmpty
@@ -129,7 +129,7 @@ object opaques
129
129
arr.asInstanceOf [Array [T ]].lastIndexWhere(p, from)
130
130
131
131
def [T , U : ClassTag ](arr : IArray [T ]) map(f : T => U ): IArray [U ] =
132
- arr.asInstanceOf [Array [T ]].map(f).asInstanceOf
132
+ arr.asInstanceOf [Array [T ]].map(f).asInstanceOf [ IArray [ U ]]
133
133
134
134
def [T ](arr : IArray [T ]) nonEmpty : Boolean =
135
135
arr.asInstanceOf [Array [T ]].nonEmpty
@@ -140,31 +140,31 @@ object opaques
140
140
}
141
141
142
142
def [T ](arr : IArray [T ]) reverse : IArray [T ] =
143
- arr.asInstanceOf [Array [T ]].reverse.asInstanceOf
143
+ arr.asInstanceOf [Array [T ]].reverse.asInstanceOf [ IArray [ T ]]
144
144
145
- def [T , U >: T : ClassTag ](arr : IArray [T ]) scan(z : U )(op : (U , U ) => U ): Array [U ] =
146
- arr.asInstanceOf [Array [T ]].scan(z)(op).asInstanceOf
145
+ def [T , U >: T : ClassTag ](arr : IArray [T ]) scan(z : U )(op : (U , U ) => U ): IArray [U ] =
146
+ arr.asInstanceOf [Array [T ]].scan(z)(op).asInstanceOf [ IArray [ U ]]
147
147
148
- def [T , U : ClassTag ](arr : IArray [T ]) scanLeft(z : U )(op : (U , T ) => U ): Array [U ] =
149
- arr.asInstanceOf [Array [T ]].scanLeft(z)(op).asInstanceOf
148
+ def [T , U : ClassTag ](arr : IArray [T ]) scanLeft(z : U )(op : (U , T ) => U ): IArray [U ] =
149
+ arr.asInstanceOf [Array [T ]].scanLeft(z)(op).asInstanceOf [ IArray [ U ]]
150
150
151
- def [T , U : ClassTag ](arr : IArray [T ]) scanRight(z : U )(op : (T , U ) => U ): Array [U ] =
152
- arr.asInstanceOf [Array [T ]].scanRight(z)(op).asInstanceOf
151
+ def [T , U : ClassTag ](arr : IArray [T ]) scanRight(z : U )(op : (T , U ) => U ): IArray [U ] =
152
+ arr.asInstanceOf [Array [T ]].scanRight(z)(op).asInstanceOf [ IArray [ U ]]
153
153
154
154
def [T ](arr : IArray [T ]) size : Int =
155
155
arr.asInstanceOf [Array [T ]].size
156
156
157
- def [T ](arr : IArray [T ]) slice(from : Int , until : Int ): Array [T ] =
158
- arr.asInstanceOf [Array [T ]].slice(from, until).asInstanceOf
157
+ def [T ](arr : IArray [T ]) slice(from : Int , until : Int ): IArray [T ] =
158
+ arr.asInstanceOf [Array [T ]].slice(from, until).asInstanceOf [ IArray [ T ]]
159
159
160
160
def [T , U : ClassTag ](arr : IArray [T ]) sortBy(f : T => U )(given math .Ordering [U ]): IArray [T ] =
161
- arr.asInstanceOf [Array [T ]].sortBy(f).asInstanceOf
161
+ arr.asInstanceOf [Array [T ]].sortBy(f).asInstanceOf [ IArray [ T ]]
162
162
163
163
def [T ](arr : IArray [T ]) sortWith(f : (T , T ) => Boolean ): IArray [T ] =
164
- arr.asInstanceOf [Array [T ]].sortWith(f).asInstanceOf
164
+ arr.asInstanceOf [Array [T ]].sortWith(f).asInstanceOf [ IArray [ T ]]
165
165
166
166
def [T ](arr : IArray [T ]) sorted(given math .Ordering [T ]): IArray [T ] =
167
- arr.asInstanceOf [Array [T ]].sorted.asInstanceOf
167
+ arr.asInstanceOf [Array [T ]].sorted.asInstanceOf [ IArray [ T ]]
168
168
169
169
def [T ](arr : IArray [T ]) span(p : T => Boolean ): (IArray [T ], IArray [T ]) =
170
170
arr.asInstanceOf [Array [T ]].span(p) match {
@@ -180,24 +180,24 @@ object opaques
180
180
arr.asInstanceOf [Array [T ]].startsWith(that.asInstanceOf [Array [U ]])
181
181
182
182
def [T ](arr : IArray [T ]) tail : IArray [T ] =
183
- arr.asInstanceOf [Array [T ]].tail.asInstanceOf
183
+ arr.asInstanceOf [Array [T ]].tail.asInstanceOf [ IArray [ T ]]
184
184
185
185
def [T ](arr : IArray [T ]) take(n : Int ): IArray [T ] =
186
- arr.asInstanceOf [Array [T ]].take(n).asInstanceOf
186
+ arr.asInstanceOf [Array [T ]].take(n).asInstanceOf [ IArray [ T ]]
187
187
188
188
def [T ](arr : IArray [T ]) takeRight(n : Int ): IArray [T ] =
189
- arr.asInstanceOf [Array [T ]].takeRight(n).asInstanceOf
189
+ arr.asInstanceOf [Array [T ]].takeRight(n).asInstanceOf [ IArray [ T ]]
190
190
191
191
def [T ](arr : IArray [T ]) takeWhile(p : T => Boolean ): IArray [T ] =
192
- arr.asInstanceOf [Array [T ]].takeWhile(p).asInstanceOf
192
+ arr.asInstanceOf [Array [T ]].takeWhile(p).asInstanceOf [ IArray [ T ]]
193
193
194
194
def [U : ClassTag , V : ClassTag ](arr : IArray [(U , V )]) unzip : (IArray [U ], IArray [V ]) =
195
195
arr.asInstanceOf [Array [(U , V )]].unzip match {
196
196
case (x, y) => (x.asInstanceOf [IArray [U ]], y.asInstanceOf [IArray [V ]])
197
197
}
198
198
199
199
def [T , U : ClassTag ](arr : IArray [T ]) zip(that : IterableOnce [U ]): IArray [(T , U )] =
200
- arr.asInstanceOf [Array [T ]].zip(that).asInstanceOf
200
+ arr.asInstanceOf [Array [T ]].zip(that).asInstanceOf [ IArray [( T , U )]]
201
201
end opaques
202
202
203
203
type IArray [+ T ] = opaques.IArray [T ]
0 commit comments