summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/Variances.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/reflect/scala/reflect/internal/Variances.scala')
-rw-r--r--src/reflect/scala/reflect/internal/Variances.scala10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/reflect/scala/reflect/internal/Variances.scala b/src/reflect/scala/reflect/internal/Variances.scala
index 659bfb5d01..3bcfed7d34 100644
--- a/src/reflect/scala/reflect/internal/Variances.scala
+++ b/src/reflect/scala/reflect/internal/Variances.scala
@@ -33,10 +33,10 @@ trait Variances {
/** Is every symbol in the owner chain between `site` and the owner of `sym`
* either a term symbol or private[this]? If not, add `sym` to the set of
* esacped locals.
- * @pre sym.hasLocalFlag
+ * @pre sym.isLocalToThis
*/
@tailrec final def checkForEscape(sym: Symbol, site: Symbol) {
- if (site == sym.owner || site == sym.owner.moduleClass || site.isPackage) () // done
+ if (site == sym.owner || site == sym.owner.moduleClass || site.hasPackageFlag) () // done
else if (site.isTerm || site.isPrivateLocal) checkForEscape(sym, site.owner) // ok - recurse to owner
else escapedLocals += sym
}
@@ -53,8 +53,8 @@ trait Variances {
// return Bivariant if `sym` is local to a term
// or is private[this] or protected[this]
def isLocalOnly(sym: Symbol) = !sym.owner.isClass || (
- sym.isTerm
- && (sym.hasLocalFlag || sym.isSuperAccessor) // super accessors are implicitly local #4345
+ sym.isTerm // ?? shouldn't this be sym.owner.isTerm according to the comments above?
+ && (sym.isLocalToThis || sym.isSuperAccessor) // super accessors are implicitly local #4345
&& !escapedLocals(sym)
)
@@ -144,7 +144,7 @@ trait Variances {
// Or constructors, or case class factory or extractor.
def skip = (
sym == NoSymbol
- || sym.hasLocalFlag
+ || sym.isLocalToThis
|| sym.owner.isConstructor
|| sym.owner.isCaseApplyOrUnapply
)