8024207: javac crash in Flow.AssignAnalyzer.visitIdent

Sat, 14 Sep 2013 15:23:21 +0100

author
vromero
date
Sat, 14 Sep 2013 15:23:21 +0100
changeset 2026
03c26c60499c
parent 2025
3ae1814f7c59
child 2027
4932bb04c4b8

8024207: javac crash in Flow.AssignAnalyzer.visitIdent
Reviewed-by: jjg

src/share/classes/com/sun/tools/javac/comp/Resolve.java file | annotate | diff | comparison | revisions
test/tools/javac/T8024207/FlowCrashTest.java file | annotate | diff | comparison | revisions
test/tools/javac/T8024207/FlowCrashTest.out file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Thu Sep 12 22:40:29 2013 +0100
     1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Sat Sep 14 15:23:21 2013 +0100
     1.3 @@ -2546,7 +2546,7 @@
     1.4                      @Override
     1.5                      Symbol access(Env<AttrContext> env, DiagnosticPosition pos, Symbol location, Symbol sym) {
     1.6                          if (sym.kind >= AMBIGUOUS) {
     1.7 -                            if (sym.kind == HIDDEN) {
     1.8 +                            if (sym.kind != WRONG_MTH && sym.kind != WRONG_MTHS) {
     1.9                                  sym = super.access(env, pos, location, sym);
    1.10                              } else {
    1.11                                  final JCDiagnostic details = sym.kind == WRONG_MTH ?
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/test/tools/javac/T8024207/FlowCrashTest.java	Sat Sep 14 15:23:21 2013 +0100
     2.3 @@ -0,0 +1,23 @@
     2.4 +/*
     2.5 + * @test  /nodynamiccopyright/
     2.6 + * @bug 8024207
     2.7 + * @summary javac crash in Flow$AssignAnalyzer.visitIdent
     2.8 + * @compile/fail/ref=FlowCrashTest.out -XDrawDiagnostics FlowCrashTest.java
     2.9 + */
    2.10 +
    2.11 +import java.util.*;
    2.12 +import java.util.stream.*;
    2.13 +
    2.14 +public class FlowCrashTest {
    2.15 +    static class ViewId { }
    2.16 +
    2.17 +    public void crash() {
    2.18 +
    2.19 +        Map<ViewId,String> viewToProfile = null;
    2.20 +        new TreeMap<>(viewToProfile.entrySet().stream()
    2.21 +                      .collect(Collectors.toMap((vid, prn) -> prn,
    2.22 +                                                (vid, prn) -> Arrays.asList(vid),
    2.23 +                                                (a, b) -> { a.addAll(b); return a; })));
    2.24 +
    2.25 +    }
    2.26 +}
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/test/tools/javac/T8024207/FlowCrashTest.out	Sat Sep 14 15:23:21 2013 +0100
     3.3 @@ -0,0 +1,2 @@
     3.4 +FlowCrashTest.java:18:42: compiler.err.cant.apply.symbols: kindname.method, toMap, @475,@542,@624,{(compiler.misc.inapplicable.method: kindname.method, java.util.stream.Collectors, <T,K,U>toMap(java.util.function.Function<? super T,? extends K>,java.util.function.Function<? super T,? extends U>), (compiler.misc.infer.arg.length.mismatch: T,K,U)),(compiler.misc.inapplicable.method: kindname.method, java.util.stream.Collectors, <T,K,U>toMap(java.util.function.Function<? super T,? extends K>,java.util.function.Function<? super T,? extends U>,java.util.function.BinaryOperator<U>), (compiler.misc.infer.no.conforming.assignment.exists: T,K,U, (compiler.misc.incompatible.arg.types.in.lambda))),(compiler.misc.inapplicable.method: kindname.method, java.util.stream.Collectors, <T,K,U,M>toMap(java.util.function.Function<? super T,? extends K>,java.util.function.Function<? super T,? extends U>,java.util.function.BinaryOperator<U>,java.util.function.Supplier<M>), (compiler.misc.infer.arg.length.mismatch: T,K,U,M))}
     3.5 +1 error

mercurial