Skip to content

Commit bcf315e

Browse files
DarkDimiusodersky
authored andcommitted
Allow FullParametrization to work on localy defined methods
1 parent a9aa810 commit bcf315e

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/dotty/tools/dotc/transform/FullParameterization.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ trait FullParameterization {
142142
* followed by the class parameters of its enclosing class.
143143
*/
144144
private def allInstanceTypeParams(originalDef: DefDef)(implicit ctx: Context): List[Symbol] =
145-
originalDef.tparams.map(_.symbol) ::: originalDef.symbol.owner.typeParams
145+
originalDef.tparams.map(_.symbol) ::: originalDef.symbol.enclosingClass.typeParams
146146

147147
/** Given an instance method definition `originalDef`, return a
148148
* fully parameterized method definition derived from `originalDef`, which
@@ -152,7 +152,7 @@ trait FullParameterization {
152152
def fullyParameterizedDef(derived: TermSymbol, originalDef: DefDef)(implicit ctx: Context): Tree =
153153
polyDefDef(derived, trefs => vrefss => {
154154
val origMeth = originalDef.symbol
155-
val origClass = origMeth.owner.asClass
155+
val origClass = origMeth.enclosingClass.asClass
156156
val origTParams = allInstanceTypeParams(originalDef)
157157
val origVParams = originalDef.vparamss.flatten map (_.symbol)
158158
val thisRef :: argRefs = vrefss.flatten
@@ -219,7 +219,7 @@ trait FullParameterization {
219219
def forwarder(derived: TermSymbol, originalDef: DefDef)(implicit ctx: Context): Tree =
220220
ref(derived.termRef)
221221
.appliedToTypes(allInstanceTypeParams(originalDef).map(_.typeRef))
222-
.appliedTo(This(originalDef.symbol.owner.asClass))
222+
.appliedTo(This(originalDef.symbol.enclosingClass.asClass))
223223
.appliedToArgss(originalDef.vparamss.nestedMap(vparam => ref(vparam.symbol)))
224224
.withPos(originalDef.rhs.pos)
225225
}

0 commit comments

Comments
 (0)