From 6c6f77682f95496feef72cc0ecd3ba00ccbdfa49 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sat, 23 Mar 2013 16:32:48 +0100 Subject: Some more fixes for classfile loading --- src/dotty/tools/dotc/core/Printers.scala | 2 +- src/dotty/tools/dotc/core/SymbolLoaders.scala | 4 ++-- src/dotty/tools/dotc/core/Types.scala | 13 +++++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) (limited to 'src/dotty/tools/dotc') diff --git a/src/dotty/tools/dotc/core/Printers.scala b/src/dotty/tools/dotc/core/Printers.scala index 0f8cc05f9..de9677a3a 100644 --- a/src/dotty/tools/dotc/core/Printers.scala +++ b/src/dotty/tools/dotc/core/Printers.scala @@ -356,7 +356,7 @@ object Printers { def locationText(sym: Symbol): Text = { val owns = sym.effectiveOwner - if (owns.isClass && !isEmptyPrefix(owns)) "in " ~ toText(owns) else Text() + if (owns.isClass && !isEmptyPrefix(owns)) " in " ~ toText(owns) else Text() } def locatedText(sym: Symbol): Text = diff --git a/src/dotty/tools/dotc/core/SymbolLoaders.scala b/src/dotty/tools/dotc/core/SymbolLoaders.scala index aa29e9d0c..c2b873bc9 100644 --- a/src/dotty/tools/dotc/core/SymbolLoaders.scala +++ b/src/dotty/tools/dotc/core/SymbolLoaders.scala @@ -95,8 +95,8 @@ class SymbolLoaders { val clazz = enterClass(owner, name, completer, flags, scope) val module = enterModule( owner, name, completer, - modFlags = flags & RetainedModuleValFlags, - clsFlags = flags & RetainedModuleClassFlags, + modFlags = flags.toTermFlags & RetainedModuleValFlags, + clsFlags = flags.toTypeFlags & RetainedModuleClassFlags, scope = scope) } diff --git a/src/dotty/tools/dotc/core/Types.scala b/src/dotty/tools/dotc/core/Types.scala index 74bf684e1..445f4c634 100644 --- a/src/dotty/tools/dotc/core/Types.scala +++ b/src/dotty/tools/dotc/core/Types.scala @@ -556,8 +556,15 @@ object Types { // This can happen if a higher-kinded type appears applied to arguments in its own bounds. // TODO: Catch this case and mark as "proceed at own risk" later. args map (_ => defn.InvariantBetweenClass.typeConstructor) - else + else { + if (tp.info == NoType) { + println(s"typeless type ref: $tp") + debugTrace = true + tp.prefix.member(tp.name) + } + hkApp(tp.info).typeArgs + } ((tp: Type) /: hkArgs.zipWithIndex.zip(args)) { case (parent, ((hkArg, idx), arg)) => val vsym = hkArg.typeSymbol @@ -1026,7 +1033,7 @@ object Types { } /** The type of a super reference cls.super where - * `thistpe` is cls.this and `supertpe` is the type of the valye referenced + * `thistpe` is cls.this and `supertpe` is the type of the value referenced * by `super`. */ abstract case class SuperType(thistpe: Type, supertpe: Type) extends CachedProxyType with SingletonType { @@ -1669,4 +1676,6 @@ object Types { } case _ => ys.isEmpty } + + var debugTrace = false } -- cgit v1.2.3