diff options
Diffstat (limited to 'sources/scalac/symtab/Definitions.java')
-rw-r--r-- | sources/scalac/symtab/Definitions.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/sources/scalac/symtab/Definitions.java b/sources/scalac/symtab/Definitions.java index fcafabc1aa..1cf278c6c0 100644 --- a/sources/scalac/symtab/Definitions.java +++ b/sources/scalac/symtab/Definitions.java @@ -315,10 +315,19 @@ public class Definitions { // add members to class scala.Any MATCH = new TermSymbol( Position.NOPOS, Names.match, ANY_CLASS, Modifiers.FINAL); + Symbol matchTyParam1 = newTypeParameter(MATCH, ANY_TYPE); + Symbol matchTyParam2 = newTypeParameter(MATCH, ANY_TYPE); MATCH.setInfo( - Type.MethodType( - new Symbol[]{newParameter(MATCH, OBJECT_TYPE)}, - OBJECT_TYPE)); + Type.PolyType( + new Symbol[]{matchTyParam1, matchTyParam2}, + Type.MethodType( + new Symbol[]{ + newParameter( + MATCH, + functionType( + new Type[]{matchTyParam1.typeConstructor()}, + matchTyParam2.typeConstructor()))}, + matchTyParam2.typeConstructor()))); ANY_CLASS.members().enter(MATCH); AS = new TermSymbol( |