File tree 1 file changed +6
-2
lines changed
src/dotty/tools/dotc/transform 1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -85,13 +85,17 @@ import Decorators._
85
85
case _ =>
86
86
var rhs = tree.rhs.changeOwnerAfter(sym, field, thisTransform)
87
87
if (isWildcardArg(rhs)) rhs = EmptyTree
88
- val fieldDef = transformFollowing(ValDef (field, rhs))
88
+
89
+ def adaptToField (tree : Tree ) =
90
+ if (tree.isEmpty) tree else tree.ensureConforms(field.info.widen)
91
+
92
+ val fieldDef = transformFollowing(ValDef (field, adaptToField(rhs))
89
93
val getterDef = cpy.DefDef (tree)(rhs = transformFollowingDeep(ref(field))(ctx.withOwner(sym), info))
90
94
Thicket (fieldDef, getterDef)
91
95
}
92
96
} else if (sym.isSetter) {
93
97
if (! sym.is(ParamAccessor )) { val Literal (Constant (())) = tree.rhs } // this is intended as an assertion
94
- val initializer = Assign (ref(field), ref(tree.vparamss.head.head.symbol))
98
+ val initializer = Assign (ref(field), Erasure . Boxing .adaptToType( ref(tree.vparamss.head.head.symbol), field.info.widen ))
95
99
cpy.DefDef (tree)(rhs = transformFollowingDeep(initializer)(ctx.withOwner(sym), info))
96
100
}
97
101
else tree // curiously, some accessors from Scala2 have ' ' suffixes. They count as
You can’t perform that action at this time.
0 commit comments