@@ -400,11 +400,11 @@ trait TypedTreeInfo extends TreeInfo[Type] { self: Trees.Instance[Type] =>
400400 def isKnownPureOp (sym : Symbol ) =
401401 sym.owner.isPrimitiveValueClass || sym.owner == defn.StringClass
402402 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 ))
404404 || fn.symbol.isPrimaryConstructor && fn.symbol.owner.isNoInitsClass) // TODO: include in isStable?
405405 minOf(exprPurity(fn), args.map(exprPurity)) `min` Pure
406406 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) */ )
408408 minOf(exprPurity(fn), args.map(exprPurity)) `min` Idempotent
409409 else Impure
410410 case Typed (expr, _) =>
@@ -439,7 +439,7 @@ trait TypedTreeInfo extends TreeInfo[Type] { self: Trees.Instance[Type] =>
439439 val sym = tree.symbol
440440 if (! tree.hasType) Impure
441441 else if (! tree.tpe.widen.isParameterless || sym.isEffectivelyErased) SimplyPure
442- else if (! sym.isStable ) Impure
442+ else if (! sym.isStableMember ) Impure
443443 else if (sym.is(Module ))
444444 if (sym.moduleClass.isNoInitsClass) Pure else Idempotent
445445 else if (sym.is(Lazy )) Idempotent
@@ -521,7 +521,7 @@ trait TypedTreeInfo extends TreeInfo[Type] { self: Trees.Instance[Type] =>
521521 case tpe : PolyType => maybeGetterType(tpe.resultType)
522522 case _ => false
523523 }
524- sym.owner.isClass && ! sym.isStable && maybeGetterType(sym.info)
524+ sym.owner.isClass && ! sym.isStableMember && maybeGetterType(sym.info)
525525 }
526526
527527 /** Is tree a reference to a mutable variable, or to a potential getter
0 commit comments