summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2009-08-06 17:11:35 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2009-08-06 17:11:35 +0000
commitacdf9452c9932d2b07d3eb907542b705fbda1c28 (patch)
treea910e5d9d797bbc68fa90288f42a0a9bdd951ca7 /src
parent381209889a348349f97e414485d5fcf3c8e8931d (diff)
downloadscala-acdf9452c9932d2b07d3eb907542b705fbda1c28.tar.gz
scala-acdf9452c9932d2b07d3eb907542b705fbda1c28.tar.bz2
scala-acdf9452c9932d2b07d3eb907542b705fbda1c28.zip
Revert "fixed #2208"
This reverts commit 2d437f2a62d7127abe907d61118ea448c9ad6c59.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/Types.scala2
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Typers.scala8
2 files changed, 2 insertions, 8 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala
index 28ca47e6a3..5375f77569 100644
--- a/src/compiler/scala/tools/nsc/symtab/Types.scala
+++ b/src/compiler/scala/tools/nsc/symtab/Types.scala
@@ -1511,8 +1511,6 @@ A type's typeSymbol should never be inspected directly.
PolyType(typeParams, typeRef(pre, sym.initialize, higherKindedArgs))
} else if (sym.isRefinementClass) {
sym.info.normalize // @MO to AM: OK?
- //@M I think this is okay, but changeset 12414 (which fixed #1241) re-introduced another bug (#2208)
- // see typedTypeConstructor in Typers
} else {
super.normalize
}
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
index f4f73cc1b3..8056c2794e 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala
@@ -3857,15 +3857,11 @@ trait Typers { self: Analyzer =>
/** Types a type constructor tree used in a new or supertype */
def typedTypeConstructor(tree: Tree, mode: Int): Tree = {
val result = typed(tree, typeMode(mode) | FUNmode, WildcardType)
-
- val restpe = result.tpe.normalize // normalize to get rid of type aliases for the following check (#1241)
+ val restpe = result.tpe.normalize
if (!phase.erasedTypes && restpe.isInstanceOf[TypeRef] && !restpe.prefix.isStable) {
error(tree.pos, restpe.prefix+" is not a legal prefix for a constructor")
}
-
- // @M: during uncurry, all types are normalized (after refchecks and before genicode)
- result // must not normalize before refchecks, and thus must not do `result setType(restpe)`
- // the original type must be ref-checked first, so that bounds of type args of type aliases are checked (see #2208)
+ result setType restpe // @M: normalization is done during erasure
}
def typedTypeConstructor(tree: Tree): Tree = typedTypeConstructor(tree, NOmode)