From b081940e5a6faf0f4adbbe32a3e0da97235e3390 Mon Sep 17 00:00:00 2001 From: Adriaan Moors Date: Tue, 18 May 2010 17:03:49 +0000 Subject: cook raw type when copying down result type closes #3404 review by odersky --- src/compiler/scala/tools/nsc/typechecker/Namers.scala | 1 + test/files/pos/t3404/Base.java | 3 +++ test/files/pos/t3404/Derived.scala | 3 +++ 3 files changed, 7 insertions(+) create mode 100644 test/files/pos/t3404/Base.java create mode 100644 test/files/pos/t3404/Derived.scala 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 -- cgit v1.2.3