Compiler version
3.3.7 and 3.8.1
Minimized code
object A {
inline def foo = {
val list = List[BigDecimal]()
val bar = list.map(_.underlying)
}
}
object B {
val c = A.foo
}
Output
Compile A.scala with 3.8.1, then B.scala with 3.8.1, everything works.
Compile A.scala with 3.3.7, then B.scala with 3.8.1, get the following:
-- Error: A.scala:4:23 ---------------------------------------------------------
method underlying in class BigDecimal does not take parameters
1 error found
Relevant Tasty when A.scala is compiled with 3.3.7:
176: DEFDEF(24) 47 [$anonfun]
179: PARAM(4) 49 [[Unique _$ 1]]
182: SHAREDtype 105
184: SYNTHETIC
185: SHAREDtype 151
188: APPLY(10)
190: SELECTin(8) 52 [underlying[Signed Signature(List(),java.math.BigDecimal) @underlying]]
193: TERMREFdirect 179
196: TYPEREF 31 [BigDecimal]
198: TERMREFpkg 53 [scala[Qualified . math]]
200: SYNTHETIC
201: ARTIFACT
Corresponding Tasty when A.scala is compiled with 3.8.1:
178: DEFDEF(17) 47 [$anonfun]
181: PARAM(4) 49 [[Unique _$ 1]]
184: SHAREDtype 105
186: SYNTHETIC
187: SHAREDtype 151
190: SELECT 50 [underlying]
192: TERMREFdirect 181
195: SYNTHETIC
196: ARTIFACT
Expectation
Compiling A.scala with 3.3.7, then B.scala with 3.8.1, should succeed.
Compiler version
3.3.7 and 3.8.1
Minimized code
Output
Compile A.scala with 3.8.1, then B.scala with 3.8.1, everything works.
Compile A.scala with 3.3.7, then B.scala with 3.8.1, get the following:
Relevant Tasty when A.scala is compiled with 3.3.7:
Corresponding Tasty when A.scala is compiled with 3.8.1:
Expectation
Compiling A.scala with 3.3.7, then B.scala with 3.8.1, should succeed.