@@ -952,11 +952,18 @@ trait Contexts { self: Analyzer =>
952
952
private def importedAccessibleSymbol (imp : ImportInfo , name : Name , requireExplicit : Boolean ): Symbol =
953
953
imp.importedSymbol(name, requireExplicit) filter (s => isAccessible(s, imp.qual.tpe, superAccess = false ))
954
954
955
+ private def requiresQualifier (s : Symbol ) = (
956
+ s.owner.isClass
957
+ && ! s.owner.isPackageClass
958
+ && ! s.isTypeParameterOrSkolem
959
+ && ! s.isExistentiallyBound
960
+ )
961
+
955
962
/** Must `sym` defined in package object of package `pkg`, if
956
963
* it selected from a prefix with `pkg` as its type symbol?
957
964
*/
958
965
def isInPackageObject (sym : Symbol , pkg : Symbol ): Boolean =
959
- pkg.isPackage && sym.owner != pkg
966
+ pkg.isPackage && sym.owner != pkg && requiresQualifier(sym)
960
967
961
968
def isNameInScope (name : Name ) = lookupSymbol(name, _ => true ).isSuccess
962
969
@@ -992,11 +999,6 @@ trait Contexts { self: Analyzer =>
992
999
|| unit.exists && s.sourceFile != unit.source.file
993
1000
)
994
1001
)
995
- def requiresQualifier (s : Symbol ) = (
996
- s.owner.isClass
997
- && ! s.owner.isPackageClass
998
- && ! s.isTypeParameterOrSkolem
999
- )
1000
1002
def lookupInPrefix (name : Name ) = pre member name filter qualifies
1001
1003
def accessibleInPrefix (s : Symbol ) = isAccessible(s, pre, superAccess = false )
1002
1004
0 commit comments