Skip to content

Commit 7c00ccb

Browse files
committed
Make DropNoEffects run after erasure
1 parent 34cd9c1 commit 7c00ccb

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

compiler/src/dotty/tools/dotc/transform/localopt/Simplify.scala

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,14 @@ object Simplify {
175175
}
176176

177177
def isImmutableAccessor(t: Tree)(implicit ctx: Context): Boolean = {
178-
val isImmutableGetter = t.symbol.isGetter && !t.symbol.is(Mutable | Lazy)
179-
val isCaseAccessor = t.symbol.is(CaseAccessor) && !t.symbol.is(Mutable | Lazy)
180-
val isProductAccessor = t.symbol.exists &&
181-
t.symbol.owner.derivesFrom(defn.ProductClass) &&
182-
t.symbol.owner.is(CaseClass) &&
183-
t.symbol.name.isSelectorName &&
184-
!t.symbol.info.decls.exists(_.is(Mutable | Lazy)) // Conservatively covers case class A(var x: Int)
178+
val sym = t.symbol
179+
val isImmutableGetter = sym.isGetter && !sym.is(Mutable | Lazy)
180+
val isCaseAccessor = sym.is(CaseAccessor) && !sym.is(Mutable | Lazy)
181+
val isProductAccessor = sym.exists &&
182+
sym.owner.derivesFrom(defn.ProductClass) &&
183+
sym.owner.is(CaseClass) &&
184+
sym.name.isSelectorName &&
185+
!sym.info.decls.exists(_.is(Mutable | Lazy)) // Conservatively covers case class A(var x: Int)
185186
isImmutableGetter || isCaseAccessor || isProductAccessor
186187
}
187188
}

0 commit comments

Comments
 (0)