summaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-05-14 16:03:45 +0000
committerPaul Phillips <paulp@improving.org>2009-05-14 16:03:45 +0000
commit1b97e9821de77a233b78e2ad2e7a402d083f34b8 (patch)
tree2bfc38e3da02df295ed1ee66c1c5f0ae34771099 /src/compiler
parent14dbc65b92e4e6ff37a0901ea1b4d0c14308632b (diff)
downloadscala-1b97e9821de77a233b78e2ad2e7a402d083f34b8.tar.gz
scala-1b97e9821de77a233b78e2ad2e7a402d083f34b8.tar.bz2
scala-1b97e9821de77a233b78e2ad2e7a402d083f34b8.zip
Obeyed comment attached to checkMalformedSwitch...
Obeyed comment attached to checkMalformedSwitch: "todo: it's now always false. Remove all code that depends on this switch."
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala27
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Infer.scala2
2 files changed, 7 insertions, 22 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala
index f66cc96e38..1f33b1b8a7 100644
--- a/src/compiler/scala/tools/nsc/symtab/Types.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Types.scala
@@ -75,7 +75,6 @@ trait Types {
var subtypeMillis = 0l
private var explainSwitch = false
- private var checkMalformedSwitch = false // todo: it's now always false. Remove all code that depends on this switch.
private final val LogPendingSubTypesThreshold = 50
private final val LogPendingBaseTypesThreshold = 50
@@ -680,8 +679,6 @@ trait Types {
var excluded = excludedFlags | DEFERRED
var self: Type = null
var continue = true
- var savedCheckMalformedSwitch = checkMalformedSwitch
- checkMalformedSwitch = false
while (continue) {
continue = false
val bcs0 = baseClasses
@@ -700,7 +697,6 @@ trait Types {
sym.getFlag(PRIVATE | LOCAL) != (PRIVATE | LOCAL) ||
(bcs0.head.hasTransOwner(bcs.head)))) {
if (name.isTypeName || stableOnly && sym.isStable) {
- checkMalformedSwitch = savedCheckMalformedSwitch
if (util.Statistics.enabled)
findMemberMillis = findMemberMillis + currentTime - startTime
return sym
@@ -742,7 +738,6 @@ trait Types {
} // while (!bcs.isEmpty)
excluded = excludedFlags
} // while (continue)
- checkMalformedSwitch = savedCheckMalformedSwitch
if (util.Statistics.enabled)
findMemberMillis = findMemberMillis + currentTime - startTime
if (members eq null) {
@@ -1374,7 +1369,7 @@ trait Types {
* @param args ...
*/
case class TypeRef(pre: Type, sym: Symbol, args: List[Type]) extends Type {
-// assert(!checkMalformedSwitch || !sym.isAbstractType || pre.isStable || pre.isError)
+// assert(!sym.isAbstractType || pre.isStable || pre.isError)
// assert(!pre.isInstanceOf[ClassInfoType], this)
// assert(!(sym hasFlag (PARAM | EXISTENTIAL)) || pre == NoPrefix, this)
// assert(args.isEmpty || !sym.info.typeParams.isEmpty, this)
@@ -2013,12 +2008,9 @@ A type's typeSymbol should never be inspected directly.
var sym1 = rebind(pre, sym)
val pre1 = removeSuper(pre, sym1)
if (pre1 ne pre) sym1 = rebind(pre1, sym1)
- if (checkMalformedSwitch && !pre1.isStable && !pre1.isError)
- throw new MalformedType(pre, sym.nameString)
- else {
- class UniqueSingleType extends SingleType(pre1, sym1) with UniqueType
- unique(new UniqueSingleType)
- }
+
+ class UniqueSingleType extends SingleType(pre1, sym1) with UniqueType
+ unique(new UniqueSingleType)
}
}
@@ -2118,10 +2110,8 @@ A type's typeSymbol should never be inspected directly.
if (pre1 ne pre) {
if (sym1.isAbstractType) sym1 = rebind(pre1, sym1)
typeRef(pre1, sym1, args)
- } else if (checkMalformedSwitch && !pre.isStable && !pre.isError &&
- (sym1.isAbstractType /* || !pre.widen.typeSymbol.isStableClass*/)) {
- throw new MalformedType(pre, sym1.nameString)
- } else if (sym1.isClass && pre.isInstanceOf[CompoundType]) {
+ }
+ else if (sym1.isClass && pre.isInstanceOf[CompoundType]) {
// sharpen prefix so that it is maximal and still contains the class.
var p = pre.parents.reverse
while (!p.isEmpty && p.head.member(sym1.name) != sym1) p = p.tail
@@ -4466,11 +4456,6 @@ A type's typeSymbol should never be inspected directly.
try { explainSwitch = true; op } finally { explainSwitch = s }
}
- def withoutMalformedChecks[T](op: => T): T = {
- val s = checkMalformedSwitch
- try { checkMalformedSwitch = false; op } finally { checkMalformedSwitch = s }
- }
-
def objToAny(tp: Type): Type =
if (!phase.erasedTypes && tp.typeSymbol == ObjectClass) AnyClass.tpe
else tp
diff --git a/src/compiler/scala/tools/nsc/typechecker/Infer.scala b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
index 7169ee3094..6f1bd8a5d2 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Infer.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
@@ -374,7 +374,7 @@ trait Infer {
case ex: MalformedType =>
if (settings.debug.value) ex.printStackTrace
val sym2 = underlying(sym1)
- val itype = withoutMalformedChecks(pre.memberType(sym2))
+ val itype = pre.memberType(sym2)
accessError("\n because its instance type "+itype+
(if ("malformed type: "+itype.toString==ex.msg) " is malformed"
else " contains a "+ex.msg))