Skip to content

Commit b4f4b6d

Browse files
committed
Fix Wildcard Import Annotation Resolution
1 parent f8d3f3e commit b4f4b6d

File tree

5 files changed

+9
-17
lines changed

5 files changed

+9
-17
lines changed

liquidjava-example/src/main/java/testSuite/classes/arraylist_correct/ArrayListRefinements.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package testSuite.classes.arraylist_correct;
22

3-
import liquidjava.specification.ExternalRefinementsFor;
4-
import liquidjava.specification.RefinementPredicate;
5-
import liquidjava.specification.StateRefinement;
3+
import liquidjava.specification.*;
64

75
@ExternalRefinementsFor("java.util.ArrayList")
86
public interface ArrayListRefinements<E> {

liquidjava-example/src/main/java/testSuite/classes/socket_error/SocketRefinements.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package testSuite.classes.socket_error;
22

33
import java.net.SocketAddress;
4-
import liquidjava.specification.ExternalRefinementsFor;
5-
import liquidjava.specification.StateRefinement;
6-
import liquidjava.specification.StateSet;
4+
import liquidjava.specification.*;
75

86
@ExternalRefinementsFor("java.net.Socket")
97
@StateSet({"unconnected", "binded", "connected", "closed"})

liquidjava-example/src/main/java/testSuite/classes/state_multiple_cases_correct/InputStreamReaderRefinements.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package testSuite.classes.state_multiple_cases_correct;
22

33
import java.io.InputStream;
4-
import liquidjava.specification.ExternalRefinementsFor;
5-
import liquidjava.specification.Refinement;
6-
import liquidjava.specification.StateRefinement;
7-
import liquidjava.specification.StateSet;
4+
import liquidjava.specification.*;
85

96
// https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html
107
@ExternalRefinementsFor("java.io.InputStreamReader")

liquidjava-verifier/src/main/java/liquidjava/processor/refinement_checker/TypeChecker.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public Optional<Predicate> getRefinementFromAnnotation(CtElement element) throws
6464
Optional<Predicate> constr = Optional.empty();
6565
Optional<String> ref = Optional.empty();
6666
for (CtAnnotation<? extends Annotation> ann : element.getAnnotations()) {
67-
String an = ann.getActualAnnotation().annotationType().getCanonicalName();
67+
String an = ann.getAnnotationType().getQualifiedName();
6868
if (an.contentEquals("liquidjava.specification.Refinement")) {
6969
String value = getStringFromAnnotation(ann.getValue("value"));
7070
ref = Optional.of(value);
@@ -93,7 +93,7 @@ public Optional<Predicate> getRefinementFromAnnotation(CtElement element) throws
9393
@SuppressWarnings({ "rawtypes" })
9494
public Optional<String> getMessageFromAnnotation(CtElement element) {
9595
for (CtAnnotation<? extends Annotation> ann : element.getAnnotations()) {
96-
String an = ann.getActualAnnotation().annotationType().getCanonicalName();
96+
String an = ann.getAnnotationType().getQualifiedName();
9797
if (an.contentEquals("liquidjava.specification.Refinement")) {
9898
Map<String, CtExpression> values = ann.getAllValues();
9999
String msg = getStringFromAnnotation((values.get("msg")));
@@ -109,7 +109,7 @@ public Optional<String> getMessageFromAnnotation(CtElement element) {
109109
public void handleStateSetsFromAnnotation(CtElement element) throws LJError {
110110
int set = 0;
111111
for (CtAnnotation<? extends Annotation> ann : element.getAnnotations()) {
112-
String an = ann.getActualAnnotation().annotationType().getCanonicalName();
112+
String an = ann.getAnnotationType().getQualifiedName();
113113
if (an.contentEquals("liquidjava.specification.StateSet")) {
114114
set++;
115115
createStateSet((CtNewArray<String>) ann.getAllValues().get("value"), set, element);
@@ -266,7 +266,7 @@ protected void handleAlias(String ref, CtElement element, SourcePosition positio
266266

267267
Optional<CtAnnotation<?>> getExternalRefinement(CtInterface<?> intrface) {
268268
for (CtAnnotation<? extends Annotation> ann : intrface.getAnnotations())
269-
if (ann.getActualAnnotation().annotationType().getCanonicalName()
269+
if (ann.getAnnotationType().getQualifiedName()
270270
.contentEquals("liquidjava.specification.ExternalRefinementsFor")) {
271271
return Optional.of(ann);
272272
}

liquidjava-verifier/src/main/java/liquidjava/processor/refinement_checker/object_checkers/AuxStateHandler.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -612,8 +612,7 @@ static VariableInstance getTarget(CtElement invocation) {
612612
}
613613

614614
private static List<CtAnnotation<? extends Annotation>> getStateAnnotation(CtElement element) {
615-
return element.getAnnotations().stream().filter(ann -> ann.getActualAnnotation().annotationType()
616-
.getCanonicalName().contentEquals("liquidjava.specification.StateRefinement"))
617-
.collect(Collectors.toList());
615+
return element.getAnnotations().stream().filter(ann -> ann.getAnnotationType().getQualifiedName()
616+
.contentEquals("liquidjava.specification.StateRefinement")).collect(Collectors.toList());
618617
}
619618
}

0 commit comments

Comments
 (0)