aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/SymDenotations.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-01-15 17:39:15 +0100
committerGuillaume Martres <smarter@ubuntu.com>2016-01-16 21:26:57 +0100
commit9a378b10a706f283a7337a1debe02e586d08c5ed (patch)
treeace7c1e83e7f994a9f820131216b5eec448f5788 /src/dotty/tools/dotc/core/SymDenotations.scala
parent8e84133598f879c1cb0ad4b9faf2a90c0403536f (diff)
downloaddotty-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.scala8
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 */