Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Don't try dynamic calls for type selections.
Without this change, tests/neg/applydynamic_sip.scala fails once
creator applications are introduced.
  • Loading branch information
odersky committed Mar 27, 2019
commit 7ca527bcc7f9bfa7d857ae001eab91f00b5bdbc5
4 changes: 2 additions & 2 deletions compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ trait TypeAssigner {
val d2 = pre.nonPrivateMember(name)
if (reallyExists(d2) && firstTry)
test(NamedType(pre, name, d2), false)
else if (pre.derivesFrom(defn.DynamicClass)) {
else if (pre.derivesFrom(defn.DynamicClass) && name.isTermName) {
TryDynamicCallType
} else {
val alts = tpe.denot.alternatives.map(_.symbol).filter(_.exists)
Expand Down Expand Up @@ -238,7 +238,7 @@ trait TypeAssigner {
val mbr = qualType.member(name)
if (reallyExists(mbr))
qualType.select(name, mbr)
else if (qualType.derivesFrom(defn.DynamicClass) && !Dynamic.isDynamicMethod(name))
else if (qualType.derivesFrom(defn.DynamicClass) && name.isTermName && !Dynamic.isDynamicMethod(name))
TryDynamicCallType
else if (qualType.isErroneous || name.toTermName == nme.ERROR)
UnspecifiedErrorType
Expand Down