File tree 1 file changed +14
-8
lines changed
src/dotty/tools/dotc/transform
1 file changed +14
-8
lines changed Original file line number Diff line number Diff line change @@ -45,14 +45,20 @@ import Decorators._
45
45
override def transformDefDef (tree : DefDef )(implicit ctx : Context , info : TransformerInfo ): Tree = {
46
46
val sym = tree.symbol
47
47
48
- def newField = ctx.newSymbol(
49
- owner = ctx.owner,
50
- name = sym.name.asTermName.fieldName,
51
- flags = Private | (if (sym is Stable ) EmptyFlags else Mutable ),
52
- info = sym.info.resultType,
53
- coord = tree.pos)
54
- .withAnnotationsCarrying(sym, defn.FieldMetaAnnot )
55
- .enteredAfter(thisTransform)
48
+ def newField = {
49
+ val fieldType =
50
+ if (sym.isGetter) sym.info.resultType
51
+ else /* sym.isSetter*/ sym.info.firstParamTypes.head
52
+
53
+ ctx.newSymbol(
54
+ owner = ctx.owner,
55
+ name = sym.name.asTermName.fieldName,
56
+ flags = Private | (if (sym is Stable ) EmptyFlags else Mutable ),
57
+ info = fieldType,
58
+ coord = tree.pos)
59
+ .withAnnotationsCarrying(sym, defn.FieldMetaAnnot )
60
+ .enteredAfter(thisTransform)
61
+ }
56
62
57
63
/** Can be used to filter annotations on getters and setters; not used yet */
58
64
def keepAnnotations (denot : SymDenotation , meta : ClassSymbol ) = {
You can’t perform that action at this time.
0 commit comments