Skip to content

Commit 70eb0f7

Browse files
committed
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 fa89a96 commit 70eb0f7

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

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

+1-1
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)