diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2011-10-13 23:00:38 +0000 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2011-10-13 23:00:38 +0000 |
commit | bca8959a1ab162dadec51c0db7d062315f5e4d6e (patch) | |
tree | aa953aba77b0db388294ebaa6f95df0445f063fc | |
parent | 1bd14badd7092596564572c601b47236818363ff (diff) | |
download | scala-bca8959a1ab162dadec51c0db7d062315f5e4d6e.tar.gz scala-bca8959a1ab162dadec51c0db7d062315f5e4d6e.tar.bz2 scala-bca8959a1ab162dadec51c0db7d062315f5e4d6e.zip |
Reverted r25823 as it breaks specialization of ...
Reverted r25823 as it breaks specialization of traits.
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala | 7 | ||||
-rw-r--r-- | test/files/pos/t5071.scala | 18 |
2 files changed, 1 insertions, 24 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala index 756c05a0c7..0f07ac0641 100644 --- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala +++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala @@ -503,12 +503,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers { val extraSpecializedMixins = specializedParents(clazz.info.parents.map(applyContext)) if (extraSpecializedMixins.nonEmpty) debuglog("specializeClass on " + clazz + " founds extra specialized mixins: " + extraSpecializedMixins.mkString(", ")) - // If the class being specialized has a self-type, we have to propagate - // that information to the specialized subclasses or it vanishes. - if (clazz.thisSym ne clazz) { - cls.typeOfThis = applyContext(clazz.typeOfThis) - log("Rewriting self-type in specialized class: " + clazz.typeOfThis + " => " + cls.typeOfThis) - } + val infoType = ClassInfoType(parents ::: extraSpecializedMixins, decls1, cls) if (newClassTParams.isEmpty) infoType else PolyType(newClassTParams, infoType) } diff --git a/test/files/pos/t5071.scala b/test/files/pos/t5071.scala deleted file mode 100644 index 44ad6276f2..0000000000 --- a/test/files/pos/t5071.scala +++ /dev/null @@ -1,18 +0,0 @@ -// abstract -trait Foo[@specialized A, Repr] { - self: Repr => -} -trait Bar[A] extends Foo[A, Object] { } -class Baz extends Foo[Int, Baz] { } - -// concrete -trait Bippy { - def f(x: Int) = 5 -} -trait FooC[@specialized A] { - self: Bippy => - - f(10) -} - -class BazC extends FooC[Int] with Bippy { } |