@@ -219,32 +219,33 @@ object tests:
219
219
inline def foo [T : InlineNumeric ](a : T , b : T ) =
220
220
a + b * b
221
221
222
- inline def integDiv [T : InlineIntegral ](a : T , b : T ) =
222
+ inline def div [T : InlineIntegral ](a : T , b : T ) =
223
223
import InlineIntegral .{/ , % }
224
224
a / b % b
225
225
226
- inline def fracDiv [T : InlineFractional ](a : T , b : T ) =
226
+ inline def div [T : InlineFractional ](a : T , b : T ) =
227
227
import InlineFractional .{/ }
228
228
a / b + a
229
229
230
- inline def bar [T : InlineNumeric ](a : T ) = a.toInt
230
+ inline def bar [T : InlineNumeric ](a : T ) =
231
+ a.toInt
231
232
232
- inline def signInt [T : InlineIntegral ](a : T ) = a.sign
233
- inline def signFrac [ T : InlineFractional ]( a : T ) = a.sign
233
+ inline def sign [T : InlineNumeric ](a : T ) =
234
+ a.sign
234
235
235
236
def test (a : Int , b : Int ) =
236
- foo(a, b) // should be a + b * b // can check with -Xprint:inlining
237
- foo(a.toShort, b.toShort) // should be a + b * b
237
+ val v1 = foo(a, b) // should be a + b * b // can check with -Xprint:inlining
238
+ val v2 = foo(a.toShort, b.toShort) // should be a + b * b
238
239
239
- integDiv (BigDecimal (a), BigDecimal (b)) // should be BigDecimal(a) quot BigDecimal(b) remainder BigDecimal(b)
240
- fracDiv (BigDecimal (a), BigDecimal (b)) // should be BigDecimal(a) / BigDecimal(b) + BigDecimal(a)
240
+ val v3 = div (BigDecimal (a), BigDecimal (b))( using BigDecimalAsIfInlineIntegral ) // should be BigDecimal(a) quot BigDecimal(b) remainder BigDecimal(b)
241
+ val v4 = div (BigDecimal (a), BigDecimal (b))( using BigDecimalIsInlineFractional ) // should be BigDecimal(a) / BigDecimal(b) + BigDecimal(a)
241
242
242
- bar(a.toFloat) // should be a.toFloat.toInt
243
- bar(a) // should be a
243
+ val v5 = bar(a.toFloat) // should be a.toFloat.toInt
244
+ val v6 = bar(a) // should be a
244
245
245
- signInt (a)
246
- signInt (a.toChar)
247
- signFrac (- 7F )
246
+ val v7 = sign (a)
247
+ val v8 = sign (a.toChar)
248
+ val v9 = sign (- 7F )
248
249
249
- signInt (BigDecimal (a))
250
- signFrac (BigDecimal (a)) // the condition with isNan() should be removed
250
+ val v10 = sign (BigDecimal (a))( using BigDecimalAsIfInlineIntegral )
251
+ val v11 = sign (BigDecimal (a))( using BigDecimalIsInlineFractional ) // the condition with isNan() should be removed, i.e. it should be equivalent to v10
0 commit comments