File tree Expand file tree Collapse file tree 3 files changed +23
-1
lines changed
compiler/src/dotty/tools/dotc/typer Expand file tree Collapse file tree 3 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -142,7 +142,8 @@ trait TypeAssigner {
142
142
val mbr = qualType.findMember(name, pre)
143
143
if (reallyExists(mbr))
144
144
qualType.select(name, mbr)
145
- else if (qualType.derivesFrom(defn.DynamicClass ) && name.isTermName && ! Dynamic .isDynamicMethod(name))
145
+ else if (qualType.derivesFrom(defn.DynamicClass ) && name.isTermName && ! Dynamic .isDynamicMethod(name) &&
146
+ ! (name == nme.apply && Dynamic .isDynamicMethod(qual1.symbol.name)))
146
147
TryDynamicCallType
147
148
else if (qualType.isErroneous || name.toTermName == nme.ERROR )
148
149
UnspecifiedErrorType
Original file line number Diff line number Diff line change
1
+ import scala .language .dynamics
2
+
3
+ class Foo extends Dynamic {
4
+ def applyDynamic (arg : Any ): Foo = ???
5
+ }
6
+ object F {
7
+ val foo = new Foo
8
+ def baz = foo.blah(43 ) // error: method applyDynamic in class Foo does not take more parameters
9
+ }
Original file line number Diff line number Diff line change
1
+ import scala .language .dynamics
2
+
3
+ class Foo extends Dynamic {
4
+ def applyDynamic (arg : Any ): Bar = ???
5
+ }
6
+ class Bar extends Dynamic {
7
+ def applyDynamic (arg : Any )(x : Int ): Int = ???
8
+ }
9
+ object F {
10
+ val foo = new Foo
11
+ def baz = foo.blah(43 ) // error: method applyDynamic in class Foo does not take more parameters
12
+ }
You can’t perform that action at this time.
0 commit comments