summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2010-05-18 17:03:49 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2010-05-18 17:03:49 +0000
commitb081940e5a6faf0f4adbbe32a3e0da97235e3390 (patch)
tree51426615aed03af728e6d81100699d5b5ca06d69
parent516a00c88c3d0bd60dd873a1d669e91144496896 (diff)
downloadscala-b081940e5a6faf0f4adbbe32a3e0da97235e3390.tar.gz
scala-b081940e5a6faf0f4adbbe32a3e0da97235e3390.tar.bz2
scala-b081940e5a6faf0f4adbbe32a3e0da97235e3390.zip
cook raw type when copying down result type
closes #3404 review by odersky
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Namers.scala1
-rw-r--r--test/files/pos/t3404/Base.java3
-rw-r--r--test/files/pos/t3404/Derived.scala3
3 files changed, 7 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
index 54c74107e0..03b2d5574c 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala
@@ -875,6 +875,7 @@ trait Namers { self: Analyzer =>
if (vparam.tpt.isEmpty) vparam.symbol setInfo WildcardType
val overridden = overriddenSymbol
if (overridden != NoSymbol && !(overridden hasFlag OVERLOADED)) {
+ overridden.cookJavaRawInfo() // #3404 xform java rawtypes into existentials
resultPt = site.memberType(overridden) match {
case PolyType(tparams, rt) => rt.substSym(tparams, tparamSyms)
case mt => mt
diff --git a/test/files/pos/t3404/Base.java b/test/files/pos/t3404/Base.java
new file mode 100644
index 0000000000..c5df18cc9f
--- /dev/null
+++ b/test/files/pos/t3404/Base.java
@@ -0,0 +1,3 @@
+abstract class Base {
+ abstract Class foo(Object o);
+} \ No newline at end of file
diff --git a/test/files/pos/t3404/Derived.scala b/test/files/pos/t3404/Derived.scala
new file mode 100644
index 0000000000..16976fe3d5
--- /dev/null
+++ b/test/files/pos/t3404/Derived.scala
@@ -0,0 +1,3 @@
+class Derived extends Base {
+ def foo(a: AnyRef) = classOf[String]
+} \ No newline at end of file