@@ -101,19 +101,8 @@ import Decorators._
101
101
cpy.installAfter(thisTransform)
102
102
}
103
103
104
- lazy val field = sym.field.orElse(newField).asTerm
105
-
106
- def adaptToField (tree : Tree ): Tree =
107
- if (tree.isEmpty) tree else tree.ensureConforms(field.info.widen)
108
-
109
104
val NoFieldNeeded = Lazy | Deferred | JavaDefined | (if (ctx.settings.YnoInline .value) EmptyFlags else Inline )
110
105
111
- def isErasableBottomField (cls : Symbol ): Boolean = {
112
- // TODO: For Scala.js, return false if this field is in a js.Object unless it is an ErasedPhantomClass.
113
- ! field.isVolatile &&
114
- ((cls eq defn.NothingClass ) || (cls eq defn.NullClass ) || (cls eq defn.BoxedUnitClass ) || (cls eq defn.ErasedPhantomClass ))
115
- }
116
-
117
106
def erasedBottomTree (sym : Symbol ) = {
118
107
if (sym eq defn.NothingClass ) Throw (Literal (Constant (null )))
119
108
else if (sym eq defn.NullClass ) Literal (Constant (null ))
@@ -125,7 +114,18 @@ import Decorators._
125
114
}
126
115
}
127
116
128
- if (sym.is(Accessor , butNot = NoFieldNeeded ))
117
+ if (sym.is(Accessor , butNot = NoFieldNeeded )) {
118
+ val field = sym.field.orElse(newField).asTerm
119
+
120
+ def adaptToField (tree : Tree ): Tree =
121
+ if (tree.isEmpty) tree else tree.ensureConforms(field.info.widen)
122
+
123
+ def isErasableBottomField (cls : Symbol ): Boolean = {
124
+ // TODO: For Scala.js, return false if this field is in a js.Object unless it is an ErasedPhantomClass.
125
+ ! field.isVolatile &&
126
+ ((cls eq defn.NothingClass ) || (cls eq defn.NullClass ) || (cls eq defn.BoxedUnitClass ) || (cls eq defn.ErasedPhantomClass ))
127
+ }
128
+
129
129
if (sym.isGetter) {
130
130
var rhs = tree.rhs.changeOwnerAfter(sym, field, thisTransform)
131
131
if (isWildcardArg(rhs)) rhs = EmptyTree
@@ -151,6 +151,7 @@ import Decorators._
151
151
}
152
152
else tree // curiously, some accessors from Scala2 have ' ' suffixes. They count as
153
153
// neither getters nor setters
154
+ }
154
155
else tree
155
156
}
156
157
}
0 commit comments