diff options
author | Martin Odersky <odersky@gmail.com> | 2016-01-15 17:39:15 +0100 |
---|---|---|
committer | Guillaume Martres <smarter@ubuntu.com> | 2016-01-16 21:26:57 +0100 |
commit | 9a378b10a706f283a7337a1debe02e586d08c5ed (patch) | |
tree | ace7c1e83e7f994a9f820131216b5eec448f5788 /src/dotty/tools/dotc/core/SymDenotations.scala | |
parent | 8e84133598f879c1cb0ad4b9faf2a90c0403536f (diff) | |
download | dotty-9a378b10a706f283a7337a1debe02e586d08c5ed.tar.gz dotty-9a378b10a706f283a7337a1debe02e586d08c5ed.tar.bz2 dotty-9a378b10a706f283a7337a1debe02e586d08c5ed.zip |
Compute type params in namer without completing the whole info
Type params should be computed before computing the whole info of
a type. Without the patch we get a cyclic reference in the compileMixed
test.
Note that compileIndexedSeq does not pass with this commit (it passed
before), this is fixed in the next commit.
Diffstat (limited to 'src/dotty/tools/dotc/core/SymDenotations.scala')
-rw-r--r-- | src/dotty/tools/dotc/core/SymDenotations.scala | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/SymDenotations.scala b/src/dotty/tools/dotc/core/SymDenotations.scala index 8016c57f3..d384bd5c4 100644 --- a/src/dotty/tools/dotc/core/SymDenotations.scala +++ b/src/dotty/tools/dotc/core/SymDenotations.scala @@ -1802,6 +1802,14 @@ object SymDenotations { def withModuleClass(moduleClassFn: Context => Symbol): this.type = { myModuleClassFn = moduleClassFn; this } } + /** A subclass of LazyTypes where type parameters can be completed independently of + * the info. + */ + abstract class TypeParamsCompleter extends LazyType { + /** The type parameters computed by the completer before completion has finished */ + def completerTypeParams(sym: Symbol): List[TypeSymbol] + } + val NoSymbolFn = (ctx: Context) => NoSymbol /** A missing completer */ |