java-topology/test/langtools/tools/javac/generics/diamond/neg/Neg12.java
russell@unturf.com 0a580b313d undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com

Patches, unit tests, benchmarks, whitepaper, and outreach briefs.
Public domain — no copyright claimed. Use freely.
2026-03-26 17:11:57 -04:00

33 lines
898 B
Java

/*
* @test /nodynamiccopyright/
* @bug 8062373
*
* @summary Test diamond + anonymous classes with non-denotable types
* @author mcimadamore
* @compile/fail/ref=Neg12.out Neg12.java -XDrawDiagnostics
*
*/
class Neg12 {
static class Foo<X> {
Foo(X x) { }
}
static class DoubleFoo<X,Y> {
DoubleFoo(X x,Y y) { }
}
static class TripleFoo<X,Y,Z> {
TripleFoo(X x,Y y,Z z) { }
}
Foo<? extends Integer> fi = new Foo<>(1);
Foo<?> fw = new Foo<>(fi) {}; // Error.
Foo<?> fw1 = new Foo<>(fi); // OK.
Foo<? extends Double> fd = new Foo<>(3.0);
DoubleFoo<?,?> dw = new DoubleFoo<>(fi,fd) {}; // Error.
DoubleFoo<?,?> dw1 = new DoubleFoo<>(fi,fd); // OK.
Foo<String> fs = new Foo<>("one");
TripleFoo<?,?,?> tw = new TripleFoo<>(fi,fd,fs) {}; // Error.
TripleFoo<?,?,?> tw1 = new TripleFoo<>(fi,fd,fs); // OK.
}