@@ -219,32 +219,33 @@ object tests:
219219 inline def foo [T : InlineNumeric ](a : T , b : T ) =
220220 a + b * b
221221
222- inline def integDiv [T : InlineIntegral ](a : T , b : T ) =
222+ inline def div [T : InlineIntegral ](a : T , b : T ) =
223223 import InlineIntegral .{/ , % }
224224 a / b % b
225225
226- inline def fracDiv [T : InlineFractional ](a : T , b : T ) =
226+ inline def div [T : InlineFractional ](a : T , b : T ) =
227227 import InlineFractional .{/ }
228228 a / b + a
229229
230- inline def bar [T : InlineNumeric ](a : T ) = a.toInt
230+ inline def bar [T : InlineNumeric ](a : T ) =
231+ a.toInt
231232
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
234235
235236 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
238239
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)
241242
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
244245
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 )
248249
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