--- old/src/share/classes/com/sun/tools/javac/code/Type.java 2009-12-27 19:02:16.000000000 +0100 +++ new/src/share/classes/com/sun/tools/javac/code/Type.java 2009-12-27 19:02:16.000000000 +0100 @@ -790,7 +790,15 @@ Type restype, List thrown, TypeSymbol methodClass) { - super(METHOD, methodClass); + this(METHOD, argtypes, restype, thrown, methodClass); + } + + public MethodType(int tag, // METHOD or FUNCTION + List argtypes, + Type restype, + List thrown, + TypeSymbol methodClass) { + super(tag, methodClass); this.argtypes = argtypes; this.restype = restype; this.thrown = thrown; @@ -859,7 +867,7 @@ if (argtypes1 == argtypes && restype1 == restype && thrown1 == thrown) return this; - else return new MethodType(argtypes1, restype1, thrown1, tsym); + else return new MethodType(tag, argtypes1, restype1, thrown1, tsym); } public boolean contains(Type elem) {