src/share/classes/com/sun/tools/javac/jvm/ClassReader.java

changeset 2040
2375ce96e80d
parent 2007
a76c663a9cac
child 2047
5f915a0c9615
     1.1 --- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Thu Sep 19 08:26:26 2013 -0700
     1.2 +++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Thu Sep 19 20:57:37 2013 +0100
     1.3 @@ -56,6 +56,7 @@
     1.4  import static com.sun.tools.javac.code.Flags.*;
     1.5  import static com.sun.tools.javac.code.Kinds.*;
     1.6  import static com.sun.tools.javac.code.TypeTag.CLASS;
     1.7 +import static com.sun.tools.javac.code.TypeTag.TYPEVAR;
     1.8  import static com.sun.tools.javac.jvm.ClassFile.*;
     1.9  import static com.sun.tools.javac.jvm.ClassFile.Version.*;
    1.10  
    1.11 @@ -703,6 +704,12 @@
    1.12                  sigp++;
    1.13                  thrown = thrown.prepend(sigToType());
    1.14              }
    1.15 +            // if there is a typevar in the throws clause we should state it.
    1.16 +            for (List<Type> l = thrown; l.nonEmpty(); l = l.tail) {
    1.17 +                if (l.head.hasTag(TYPEVAR)) {
    1.18 +                    l.head.tsym.flags_field |= THROWS;
    1.19 +                }
    1.20 +            }
    1.21              return new MethodType(argtypes,
    1.22                                    restype,
    1.23                                    thrown.reverse(),

mercurial