aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TypeOps.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-03-23 16:45:10 +0100
committerMartin Odersky <odersky@gmail.com>2013-03-23 16:45:10 +0100
commit8ea3a4627c7dc66f65705ec9822c01a2225eacae (patch)
treee9966adbb3df29c4b458b7aaaa68b7cc8dab5a17 /src/dotty/tools/dotc/core/TypeOps.scala
parent6c6f77682f95496feef72cc0ecd3ba00ccbdfa49 (diff)
downloaddotty-8ea3a4627c7dc66f65705ec9822c01a2225eacae.tar.gz
dotty-8ea3a4627c7dc66f65705ec9822c01a2225eacae.tar.bz2
dotty-8ea3a4627c7dc66f65705ec9822c01a2225eacae.zip
Attempt to fix fingerprint problem (disabled for now)
Diffstat (limited to 'src/dotty/tools/dotc/core/TypeOps.scala')
-rw-r--r--src/dotty/tools/dotc/core/TypeOps.scala10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/core/TypeOps.scala b/src/dotty/tools/dotc/core/TypeOps.scala
index 38da0ce9c..c19b0e387 100644
--- a/src/dotty/tools/dotc/core/TypeOps.scala
+++ b/src/dotty/tools/dotc/core/TypeOps.scala
@@ -165,7 +165,8 @@ trait TypeOps { this: Context =>
* to a list of typerefs, by converting all refinements to member
* definitions in scope `decls`. Can add members to `decls` as a side-effect.
*/
- def normalizeToRefs(parents: List[Type], cls: ClassSymbol, decls: MutableScope): List[TypeRef] = {
+ def normalizeToRefs(parents: List[Type], cls: ClassSymbol, decls: MutableScope /*@@@*/): List[TypeRef] = {
+ // println(s"normalizing $parents of $cls in ${cls.owner}") // !!! DEBUG
var refinements = Map[TypeName, Type]()
var formals = Map[TypeName, Symbol]()
def normalizeToRef(tp: Type): TypeRef = tp match {
@@ -183,12 +184,13 @@ trait TypeOps { this: Context =>
throw new TypeError(s"unexpected parent type: $tp")
}
val parentRefs = parents map normalizeToRef
- for ((name, tpe) <- refinements) decls.enter {
+ for ((name, tpe) <- refinements) {
val formal = formals(name)
val bounds = tpe //.toRHS(formal)
assert(decls.lookup(name) == NoSymbol, // DEBUG
- s"redefinition of ${decls.lookup(name).debugString} in ${cls.debugString}")
- ctx.newSymbol(cls, name, formal.flags & RetainedTypeArgFlags, bounds)
+ s"redefinition of ${decls.lookup(name).debugString} in ${cls.showLocated}")
+ val sym = ctx.newSymbol(cls, name, formal.flags & RetainedTypeArgFlags, bounds)
+ decls.enter(sym) // @@@ cls.enter(sym, decls)
}
parentRefs
}