@@ -46,7 +46,8 @@ pub trait OverloadSet: Clone + std::fmt::Debug {
46
46
/// Return the subset of `self` that could accept a value of type
47
47
/// `ty` for the `i`'th subexpression, once feasible automatic
48
48
/// conversions have been applied.
49
- fn arg ( & self , i : usize , ty : & crate :: TypeInner , types : & crate :: UniqueArena < crate :: Type > ) -> Self ;
49
+ fn arg ( & self , i : usize , ty : & crate :: TypeInner , types : & crate :: UniqueArena < crate :: Type > )
50
+ -> Self ;
50
51
51
52
/// Limit `self` to overloads whose subexpressions are all concrete types.
52
53
///
@@ -166,7 +167,12 @@ impl OverloadSet for AnyOverloadSet {
166
167
}
167
168
}
168
169
169
- fn arg ( & self , i : usize , ty : & crate :: TypeInner , types : & crate :: UniqueArena < crate :: Type > ) -> Self {
170
+ fn arg (
171
+ & self ,
172
+ i : usize ,
173
+ ty : & crate :: TypeInner ,
174
+ types : & crate :: UniqueArena < crate :: Type > ,
175
+ ) -> Self {
170
176
match * self {
171
177
AnyOverloadSet :: List ( ref list) => AnyOverloadSet :: List ( list. arg ( i, ty, types) ) ,
172
178
}
@@ -180,7 +186,7 @@ impl OverloadSet for AnyOverloadSet {
180
186
181
187
fn most_preferred ( & self ) -> Option < AnyRule > {
182
188
match * self {
183
- AnyOverloadSet :: List ( ref list) => list. most_preferred ( ) . map ( AnyRule :: List )
189
+ AnyOverloadSet :: List ( ref list) => list. most_preferred ( ) . map ( AnyRule :: List ) ,
184
190
}
185
191
}
186
192
@@ -227,17 +233,44 @@ impl crate::MathFunction {
227
233
use crate :: TypeInner as Ti ;
228
234
use crate :: VectorSize as Vs ;
229
235
230
- const VEC2F : Ti = Ti :: Vector { size : Vs :: Bi , scalar : Sc :: F32 } ;
231
- const VEC3F : Ti = Ti :: Vector { size : Vs :: Tri , scalar : Sc :: F32 } ;
232
- const VEC4F : Ti = Ti :: Vector { size : Vs :: Quad , scalar : Sc :: F32 } ;
233
-
234
- const VEC2AF : Ti = Ti :: Vector { size : Vs :: Bi , scalar : Sc :: ABSTRACT_FLOAT } ;
235
- const VEC3AF : Ti = Ti :: Vector { size : Vs :: Tri , scalar : Sc :: ABSTRACT_FLOAT } ;
236
- const VEC4AF : Ti = Ti :: Vector { size : Vs :: Quad , scalar : Sc :: ABSTRACT_FLOAT } ;
237
-
238
- const VEC2I : Ti = Ti :: Vector { size : Vs :: Bi , scalar : Sc :: I32 } ;
239
- const VEC3I : Ti = Ti :: Vector { size : Vs :: Tri , scalar : Sc :: I32 } ;
240
- const VEC4I : Ti = Ti :: Vector { size : Vs :: Quad , scalar : Sc :: I32 } ;
236
+ const VEC2F : Ti = Ti :: Vector {
237
+ size : Vs :: Bi ,
238
+ scalar : Sc :: F32 ,
239
+ } ;
240
+ const VEC3F : Ti = Ti :: Vector {
241
+ size : Vs :: Tri ,
242
+ scalar : Sc :: F32 ,
243
+ } ;
244
+ const VEC4F : Ti = Ti :: Vector {
245
+ size : Vs :: Quad ,
246
+ scalar : Sc :: F32 ,
247
+ } ;
248
+
249
+ const VEC2AF : Ti = Ti :: Vector {
250
+ size : Vs :: Bi ,
251
+ scalar : Sc :: ABSTRACT_FLOAT ,
252
+ } ;
253
+ const VEC3AF : Ti = Ti :: Vector {
254
+ size : Vs :: Tri ,
255
+ scalar : Sc :: ABSTRACT_FLOAT ,
256
+ } ;
257
+ const VEC4AF : Ti = Ti :: Vector {
258
+ size : Vs :: Quad ,
259
+ scalar : Sc :: ABSTRACT_FLOAT ,
260
+ } ;
261
+
262
+ const VEC2I : Ti = Ti :: Vector {
263
+ size : Vs :: Bi ,
264
+ scalar : Sc :: I32 ,
265
+ } ;
266
+ const VEC3I : Ti = Ti :: Vector {
267
+ size : Vs :: Tri ,
268
+ scalar : Sc :: I32 ,
269
+ } ;
270
+ const VEC4I : Ti = Ti :: Vector {
271
+ size : Vs :: Quad ,
272
+ scalar : Sc :: I32 ,
273
+ } ;
241
274
242
275
static COMPONENT_WISE_FLOAT : & [ list:: Rule ] = & [
243
276
list:: Rule {
@@ -291,7 +324,10 @@ impl crate::MathFunction {
291
324
conclusion : Ti :: Scalar ( Sc :: F32 ) ,
292
325
} ,
293
326
list:: Rule {
294
- subexpressions : & [ Ti :: Scalar ( Sc :: ABSTRACT_FLOAT ) , Ti :: Scalar ( Sc :: ABSTRACT_FLOAT ) ] ,
327
+ subexpressions : & [
328
+ Ti :: Scalar ( Sc :: ABSTRACT_FLOAT ) ,
329
+ Ti :: Scalar ( Sc :: ABSTRACT_FLOAT ) ,
330
+ ] ,
295
331
conclusion : Ti :: Scalar ( Sc :: ABSTRACT_FLOAT ) ,
296
332
} ,
297
333
list:: Rule {
0 commit comments