Skip to content

Commit d25e6b4

Browse files
olhotakDarkDimius
authored andcommitted
don't try to make a body for a setter of a Java field
transformSym explicitly checks that a field is JavaDefined and does not create a symbol for it. Creation of a setter body looks for the symbol and fails because it does not find it. We do not need setter bodies for Java fields because we are not generating bytecode for them.
1 parent 3862ea3 commit d25e6b4

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class GettersSetters extends MiniPhaseTransform with SymTransformer { thisTransf
104104
}
105105

106106
override def transformDefDef(tree: DefDef)(implicit ctx: Context, info: TransformerInfo): Tree =
107-
if (tree.symbol.isSetter && !tree.symbol.is(Deferred | ParamAccessor)) {
107+
if (tree.symbol.isSetter && !tree.symbol.is(Deferred | ParamAccessor | JavaDefined)) {
108108
val Literal(Constant(())) = tree.rhs
109109
val initializer = Assign(ref(tree.symbol.field), ref(tree.vparamss.head.head.symbol))
110110
assert(initializer.hasType)

0 commit comments

Comments
 (0)