Skip to content

Commit 34ef580

Browse files
committed
fixup #1470
1 parent ba65dd9 commit 34ef580

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/dotty/tools/dotc/typer/TypeAssigner.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,9 @@ trait TypeAssigner {
168168
val d2 = pre.nonPrivateMember(name)
169169
if (reallyExists(d2) && firstTry)
170170
test(tpe.shadowed.withDenot(d2), false)
171-
else {
171+
else if (pre.derivesFrom(defn.DynamicClass)) {
172+
TryDynamicCallType
173+
} else {
172174
val alts = tpe.denot.alternatives.map(_.symbol).filter(_.exists)
173175
val what = alts match {
174176
case Nil =>
@@ -203,9 +205,8 @@ trait TypeAssigner {
203205
*/
204206
def selectionType(site: Type, name: Name, pos: Position)(implicit ctx: Context): Type = {
205207
val mbr = site.member(name)
206-
lazy val canBeDynamicMethod = site.derivesFrom(defn.DynamicClass) && !Dynamic.isDynamicMethod(name)
207-
if (reallyExists(mbr) && (mbr.accessibleFrom(site).exists || !canBeDynamicMethod)) site.select(name, mbr)
208-
else if (canBeDynamicMethod) {
208+
if (reallyExists(mbr)) site.select(name, mbr)
209+
else if (site.derivesFrom(defn.DynamicClass) && !Dynamic.isDynamicMethod(name)) {
209210
TryDynamicCallType
210211
} else {
211212
if (!site.isErroneous) {

0 commit comments

Comments
 (0)