/* * @test /nodynamiccopyright/ * @summary Value types may not declare fields of its own type either directly or indirectly. * @modules jdk.incubator.mvt * @compile/fail/ref=CheckCyclicMembership.out -XDrawDiagnostics -Werror -Xlint:values CheckCyclicMembership.java */ @jdk.incubator.mvt.ValueCapableClass final class CheckCyclicMembership { class InnerRef { CheckCyclicMembership ccm; } @jdk.incubator.mvt.ValueCapableClass final class InnerValue { final CheckCyclicMembership ccm = new CheckCyclicMembership(); // Error. } final CheckCyclicMembership ccm = new CheckCyclicMembership(); // Error. final int i = 10; final String s = "blah"; final InnerRef ir = new InnerRef(); // OK. final InnerValue iv = new InnerValue(); // Error. }