File tree 2 files changed +23
-1
lines changed
compiler/src/dotty/tools/dotc/typer
2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -1119,7 +1119,11 @@ class Typer(@constructorOnly nestingLevel: Int = 0) extends Namer
1119
1119
case Apply (fn, _) if fn.symbol.is(ExtensionMethod ) =>
1120
1120
def toSetter (fn : Tree ): untpd.Tree = fn match
1121
1121
case fn @ Ident (name : TermName ) =>
1122
- untpd.cpy.Ident (fn)(name.setterName)
1122
+ fn.tpe match
1123
+ case TermRef (qual : TermRef , _) =>
1124
+ toSetter(ref(qual).select(fn.symbol).withSpan(fn.span))
1125
+ case _ =>
1126
+ untpd.cpy.Ident (fn)(name.setterName)
1123
1127
case fn @ Select (qual, name : TermName ) =>
1124
1128
untpd.cpy.Select (fn)(untpd.TypedSplice (qual), name.setterName)
1125
1129
case fn @ TypeApply (fn1, targs) =>
Original file line number Diff line number Diff line change
1
+ import language .experimental .relaxedExtensionImports
2
+
3
+ class A
4
+ object AA :
5
+ extension (a : A )
6
+ def f = ???
7
+ def f_= (x : String ) = ???
8
+
9
+ object BB :
10
+ extension (b : Long )
11
+ def f = ???
12
+ def f_= (x : String ) = ???
13
+
14
+ def test (a : A ) =
15
+ import AA .*
16
+ import BB .*
17
+ a.f
18
+ a.f = " aa"
You can’t perform that action at this time.
0 commit comments