@@ -2,20 +2,21 @@ package dotty.tools
2
2
package dotc
3
3
package typer
4
4
5
- import dotty .tools .dotc .ast .Trees ._
5
+ import dotty .tools .dotc .ast .Trees .*
6
6
import dotty .tools .dotc .ast .tpd
7
7
import dotty .tools .dotc .ast .untpd
8
8
import dotty .tools .dotc .core .Constants .Constant
9
- import dotty .tools .dotc .core .Contexts ._
9
+ import dotty .tools .dotc .core .Contexts .*
10
10
import dotty .tools .dotc .core .Names .{Name , TermName }
11
- import dotty .tools .dotc .core .StdNames ._
12
- import dotty .tools .dotc .core .Types ._
13
- import dotty .tools .dotc .core .Decorators ._
11
+ import dotty .tools .dotc .core .StdNames .*
12
+ import dotty .tools .dotc .core .Types .*
13
+ import dotty .tools .dotc .core .Decorators .*
14
14
import dotty .tools .dotc .core .TypeErasure
15
- import util .Spans ._
16
- import core .Symbols ._
17
- import ErrorReporting ._
18
- import reporting ._
15
+ import util .Spans .*
16
+ import core .Symbols .*
17
+ import ErrorReporting .*
18
+ import dotty .tools .dotc .core .TypeErasure .ErasedValueType
19
+ import reporting .*
19
20
20
21
object Dynamic {
21
22
private def isDynamicMethod (name : Name ): Boolean =
@@ -215,10 +216,7 @@ trait Dynamic {
215
216
errorTree(tree, em " Structural access not allowed on method $name because it $reason" )
216
217
217
218
fun.tpe.widen match {
218
- case tpe : ValueType =>
219
- structuralCall(nme.selectDynamic, Nil ).cast(tpe)
220
-
221
- case tpe : MethodType =>
219
+ case tpe @ (_ : MethodType | _ : ErasedValueType ) =>
222
220
def isDependentMethod (tpe : Type ): Boolean = tpe match {
223
221
case tpe : MethodType =>
224
222
tpe.isParamDependent ||
@@ -239,6 +237,9 @@ trait Dynamic {
239
237
structuralCall(nme.applyDynamic, classOfs).cast(tpe.finalResultType)
240
238
}
241
239
240
+ case tpe : ValueType =>
241
+ structuralCall(nme.selectDynamic, Nil ).cast(tpe)
242
+
242
243
// (@allanrenucci) I think everything below is dead code
243
244
case _ : PolyType =>
244
245
fail(" is polymorphic" )
0 commit comments