package org.extendj; import org.extendj.ast.AbstractFinding; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import java.util.Set; public class InnerTest extends ScopeAnalysisTest { @Test void test() { ScopeAnalysis scopeAnalysis = new ScopeAnalysis(); Set<AbstractFinding> findings = scopeAnalysis.analyze("src/test/resources/inner", true, true); System.out.println(findings); // anonymous class assertShadow(findings, "fieldA", "ClassA", 11, "ClassA", 13); assertShadow(findings, "fieldA", "ClassA", 13, "ClassA", 3); // local inner class assertShadow(findings, "fieldA", "ClassA", 27, "ClassA", 29); assertShadow(findings, "fieldA", "ClassA", 29, "ClassA", 3); assertShadow(findings, "changingVar", "ClassA", 25, "ClassA", 19); // static member class assertShadow(findings, "fieldA", "ClassA", 37, "ClassA", 35); assertShadow(findings, "fieldA", "ClassA", 35, "ClassA", 3); // member class assertShadow(findings, "fieldA", "ClassA", 44, "ClassA", 42); assertShadow(findings, "fieldA", "ClassA", 42, "ClassA", 3); // anonymous class defined in other class assertShadow(findings, "fieldB", "ClassB", 5, "ClassB", 10); // the anonymous class inherited a field assertShadow(findings, "fieldB", "ClassB", 10, "ClassA", 4); Assertions.assertEquals(11, findings.size()); } }