@Test public void libraryReference() { Helper.check(0, TestCanUsePureLibrary.class); }
@Test public void covariantReturnTypeImmutable() { Helper.check(3, 2, BadBase.class, LeakyOverride.class, PureClass.class); }
@Test public void runtimeResultNarrowing() { Helper.check(1, NarrowAtRuntime.class); Helper.check(1, BrokenRuntimeCheck.class); }
@Test public void parentClassNotImmutable() { Helper.check(1, InnerClassAccess.class); Helper.check(0, FieldSetting.class); }
@Test public void thisAllowedAsReturn() { Helper.check(0, ReturnThis.class); }
@Test public void immutableOnlyReturned() { Helper.check(1, BadReturn.class); }
@Test public void publicParametersImmutable() { Helper.check(1, PureNarrowingTest.class); }
@Test public void publicFieldsImmutable() { Helper.check(1, TestCheckStatic.class); Helper.check(1, SomeMutableUnsharedClass.class); }
@Test public void annotationInherited() { Helper.check(2, BasePure.class, InheritedPure.class); }
@Test public void visitorExample() { Helper.check(1, VisitorExample.class); }