diff options
author | Martin Odersky <odersky@gmail.com> | 2014-09-06 08:47:08 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2014-09-06 08:47:08 +0200 |
commit | e1040935cbcc1d767933c38a141372538ef63ac2 (patch) | |
tree | d2f05fa2319fe80a76f660e043d42a06d5e9ba8a /src/dotty/tools/dotc/core/SymDenotations.scala | |
parent | 44bdec1a44db7ac880183e0c70b5f5668048961e (diff) | |
download | dotty-e1040935cbcc1d767933c38a141372538ef63ac2.tar.gz dotty-e1040935cbcc1d767933c38a141372538ef63ac2.tar.bz2 dotty-e1040935cbcc1d767933c38a141372538ef63ac2.zip |
Better tests and more fixes for ExplicitOuter
Now also testing that after erasure no outer this exists. Tests suit now includes
calls to local classes and methods which need an outer pointer, as well as passing
an outer pointer along a secondary constructor.
Diffstat (limited to 'src/dotty/tools/dotc/core/SymDenotations.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/SymDenotations.scala | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/SymDenotations.scala b/src/dotty/tools/dotc/core/SymDenotations.scala index e028c492c..a509881fb 100644 --- a/src/dotty/tools/dotc/core/SymDenotations.scala +++ b/src/dotty/tools/dotc/core/SymDenotations.scala @@ -636,6 +636,11 @@ object SymDenotations { /** The class containing this denotation. * If this denotation is already a class, return itself + * Definitions flagged with InSuperCall are treated specially. + * Their enclosing class is not the lexically enclosing class, + * but in turn the enclosing class of the latter. This reflects + * the context created by `Context#superCallContext`, `Contect#thisCallArgContext` + * for these definitions. */ final def enclosingClass(implicit ctx: Context): Symbol = { def enclClass(d: SymDenotation): Symbol = |