@@ -400,11 +400,11 @@ trait TypedTreeInfo extends TreeInfo[Type] { self: Trees.Instance[Type] =>
400
400
def isKnownPureOp (sym : Symbol ) =
401
401
sym.owner.isPrimitiveValueClass || sym.owner == defn.StringClass
402
402
if (tree.tpe.isInstanceOf [ConstantType ] && isKnownPureOp(tree.symbol) // A constant expression with pure arguments is pure.
403
- || (fn.symbol.isStable && ! fn.symbol.is(Lazy ))
403
+ || (fn.symbol.isStableMember && ! fn.symbol.is(Lazy ))
404
404
|| fn.symbol.isPrimaryConstructor && fn.symbol.owner.isNoInitsClass) // TODO: include in isStable?
405
405
minOf(exprPurity(fn), args.map(exprPurity)) `min` Pure
406
406
else if (fn.symbol.is(Erased )) Pure
407
- else if (fn.symbol.isStable /* && fn.symbol.is(Lazy) */ )
407
+ else if (fn.symbol.isStableMember /* && fn.symbol.is(Lazy) */ )
408
408
minOf(exprPurity(fn), args.map(exprPurity)) `min` Idempotent
409
409
else Impure
410
410
case Typed (expr, _) =>
@@ -439,7 +439,7 @@ trait TypedTreeInfo extends TreeInfo[Type] { self: Trees.Instance[Type] =>
439
439
val sym = tree.symbol
440
440
if (! tree.hasType) Impure
441
441
else if (! tree.tpe.widen.isParameterless || sym.isEffectivelyErased) SimplyPure
442
- else if (! sym.isStable ) Impure
442
+ else if (! sym.isStableMember ) Impure
443
443
else if (sym.is(Module ))
444
444
if (sym.moduleClass.isNoInitsClass) Pure else Idempotent
445
445
else if (sym.is(Lazy )) Idempotent
@@ -521,7 +521,7 @@ trait TypedTreeInfo extends TreeInfo[Type] { self: Trees.Instance[Type] =>
521
521
case tpe : PolyType => maybeGetterType(tpe.resultType)
522
522
case _ => false
523
523
}
524
- sym.owner.isClass && ! sym.isStable && maybeGetterType(sym.info)
524
+ sym.owner.isClass && ! sym.isStableMember && maybeGetterType(sym.info)
525
525
}
526
526
527
527
/** Is tree a reference to a mutable variable, or to a potential getter
0 commit comments