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 {
142142 val mbr = qualType.findMember(name, pre)
143143 if (reallyExists(mbr))
144144 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)))
146147 TryDynamicCallType
147148 else if (qualType.isErroneous || name.toTermName == nme.ERROR )
148149 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