From b82944e86b633ec91b435b647d6db7a66107c924 Mon Sep 17 00:00:00 2001 From: paltherr Date: Tue, 15 Jul 2003 15:17:55 +0000 Subject: - Added a missing isMethod test on LambdaLiftPh... - Added a missing isMethod test on LambdaLiftPhase.proxy - Added some assertion checks to Type.typeParams and Type.valueParams - Patched ClassSymbol.typeParams and LambdaLiftPhase.TransformTypeMap.apply to hide bug of method Symbol.constructor (see comment is those two methods). --- sources/scalac/symtab/Symbol.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'sources/scalac/symtab/Symbol.java') diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java index 62b6f1200a..a67669075a 100644 --- a/sources/scalac/symtab/Symbol.java +++ b/sources/scalac/symtab/Symbol.java @@ -1357,7 +1357,17 @@ public class ClassSymbol extends TypeSymbol { /** Get type parameters */ public Symbol[] typeParams() { - return constructor.info().typeParams(); + // !!! For some Java classes, constructor() returns an + // Overloaded symbol. This is wrong as constructor() should + // return the primary constructor. Once this problem is + // solved, the following switch can be removed. + Type constrtype = constructor.info(); + switch (constrtype) { + case OverloadedType(_, _): + return Symbol.EMPTY_ARRAY; + default: + return constrtype.typeParams(); + } } public Symbol[] valueParams() { -- cgit v1.2.3