aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/companions.scala
Commit message (Collapse)AuthorAgeFilesLines
* Bullet-proofing companion objectsMartin Odersky2014-03-131-0/+28
Companion class/module computations now also work for local classes and modules. For this to work, either one of two conditions must be met: (1) some enclosing context refers to a scope that contains the companions. (2) the context's compilation unit has a typed tree that contains the companions. (1) is usually true when type-checking, (2) when transforming trees. Local companions are searched as follows: If (2) holds, we locate the statement sequence containing the companions by searching down from the root stored in the compilation unit. Otherwise, we search outwards in the enclosing contexts for a scope containing the companions.