Skip to content

Commit 6789e4c

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 7656cfd commit 6789e4c

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
@@ -102,7 +102,7 @@ import Decorators._
102102
}
103103

104104
override def transformDefDef(tree: DefDef)(implicit ctx: Context, info: TransformerInfo): Tree =
105-
if (tree.symbol.isSetter && !tree.symbol.is(Deferred | ParamAccessor)) {
105+
if (tree.symbol.isSetter && !tree.symbol.is(Deferred | ParamAccessor | JavaDefined)) {
106106
val Literal(Constant(())) = tree.rhs
107107
assert(tree.symbol.field.exists, i"no field for ${tree.symbol.showLocated}")
108108
val initializer = Assign(ref(tree.symbol.field), ref(tree.vparamss.head.head.symbol))

0 commit comments

Comments
 (0)