The denotation of a package class. It overrides ClassDenotation to take account of package objects when looking for members
Constructors
Members
Looks in both the package object and the package for members. The precise algorithm is as follows:
If this is the scala package look in the package firs...
Looks in both the package object and the package for members. The precise algorithm is as follows:
If this is the scala package look in the package first, and if nothing is found there, look in the package object second. Otherwise, look in the package object first, and if nothing is found there, in the package second.
The reason for the special treatment of the scala package is that if we complete it too early, we freeze its superclass Any, so that no members can be entered in it. As a consequence, there should be no entry in the scala package object that hides a class or object in the scala package of the same name, because the behavior would then be unintuitive for such members.
The union of the member names of the package and the package object
The union of the member names of the package and the package object
The package object in this class, of one exists
The package object in this class, of one exists
If another symbol with the same name is entered, unlink it, and, if symbol is a package object, invalidate the packageObj cache.
If another symbol with the same name is entered, unlink it, and, if symbol is a package object, invalidate the packageObj cache.