Skip to content

Commit f8ff61b

Browse files
Merge branch 'CatarinaGamboa:main' into main
2 parents aaf5472 + d906b45 commit f8ff61b

File tree

49 files changed

+901
-101
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+901
-101
lines changed

liquidjava-example/src/main/java/testSuite/ErrorExtRefNonExistentMethod.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ public interface ErrorExtRefNonExistentMethod<E> {
1212
public void ArrayList();
1313

1414
@StateRefinement(to = "size(this) == (size(old(this)) + 1)")
15-
public void adddd(E e);
15+
public boolean adddd(E e);
1616
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package testSuite;
2+
3+
import liquidjava.specification.ExternalRefinementsFor;
4+
import liquidjava.specification.RefinementPredicate;
5+
import liquidjava.specification.StateRefinement;
6+
7+
@ExternalRefinementsFor("java.util.ArrayList")
8+
public interface ErrorExtRefWrongConstructor<E> {
9+
10+
@RefinementPredicate("int size(ArrayList l)")
11+
@StateRefinement(to = "size(this) == 0")
12+
public void ArrayList(String wrongParameter);
13+
14+
@StateRefinement(to = "size(this) == (size(old(this)) + 1)")
15+
public boolean add(E e);
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package testSuite;
2+
3+
import liquidjava.specification.ExternalRefinementsFor;
4+
import liquidjava.specification.RefinementPredicate;
5+
import liquidjava.specification.StateRefinement;
6+
7+
@ExternalRefinementsFor("java.util.ArrayList")
8+
public interface ErrorExtRefWrongParameterType<E> {
9+
10+
@RefinementPredicate("int size(ArrayList l)")
11+
@StateRefinement(to = "size(this) == 0")
12+
public void ArrayList();
13+
14+
@StateRefinement(to = "size(this) == (size(old(this)) + 1)")
15+
public boolean add(int wrongParameter);
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package testSuite;
2+
3+
import liquidjava.specification.ExternalRefinementsFor;
4+
import liquidjava.specification.RefinementPredicate;
5+
import liquidjava.specification.StateRefinement;
6+
7+
@ExternalRefinementsFor("java.util.ArrayList")
8+
public interface ErrorExtRefWrongRetType<E> {
9+
10+
@RefinementPredicate("int size(ArrayList l)")
11+
@StateRefinement(to = "size(this) == 0")
12+
public void ArrayList();
13+
14+
@StateRefinement(to = "size(this) == (size(old(this)) + 1)")
15+
public int add(E e); // wrong return type
16+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package testSuite;
2+
3+
import liquidjava.specification.RefinementAlias;
4+
5+
@RefinementAlias("Positive(v) { v > 0 }")
6+
public class ErrorMissingAliasTypeParameter {}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public interface ArrayListRefinements<E> {
1212
public void ArrayList();
1313

1414
@StateRefinement(to = "size(this) == (size(old(this)) + 1)")
15-
public void add(E e);
15+
public boolean add(E e);
1616

1717
// @Refinement("size(_) == size(this)")
1818
// public Object clone();
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package testSuite.classes.conflicting_ghost_names_correct;
2+
3+
import liquidjava.specification.ExternalRefinementsFor;
4+
import liquidjava.specification.Ghost;
5+
import liquidjava.specification.Refinement;
6+
import liquidjava.specification.StateRefinement;
7+
8+
@ExternalRefinementsFor("java.util.ArrayList")
9+
@Ghost("int size")
10+
public interface ArrayListRefinements<E> {
11+
12+
public void ArrayList();
13+
14+
@StateRefinement(to = "size(this) == (size(old(this)) + 1)")
15+
public boolean add(E elem);
16+
17+
public E get(@Refinement("0 <= _ && _ < size(this)") int index);
18+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package testSuite.classes.conflicting_ghost_names_correct;
2+
3+
import java.util.ArrayList;
4+
import java.util.Stack;
5+
6+
public class SimpleTest {
7+
public void example() {
8+
ArrayList<Integer> list = new ArrayList<>();
9+
list.add(10);
10+
list.get(0);
11+
12+
Stack<Integer> stack = new Stack<>();
13+
stack.push(1);
14+
stack.peek();
15+
stack.pop();
16+
}
17+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package testSuite.classes.conflicting_ghost_names_correct;
2+
3+
import liquidjava.specification.ExternalRefinementsFor;
4+
import liquidjava.specification.Ghost;
5+
import liquidjava.specification.StateRefinement;
6+
7+
@ExternalRefinementsFor("java.util.Stack")
8+
@Ghost("int size")
9+
public interface StackRefinements<E> {
10+
11+
public void Stack();
12+
13+
@StateRefinement(to="size(this) == size(old(this)) + 1")
14+
public E push(E elem);
15+
16+
@StateRefinement(from="size(this) > 0", to="size(this) == size(old(this)) - 1")
17+
public E pop();
18+
19+
@StateRefinement(from="size(this) > 0")
20+
public E peek();
21+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package testSuite.classes.method_overload_error;
2+
3+
import liquidjava.specification.ExternalRefinementsFor;
4+
import liquidjava.specification.Refinement;
5+
6+
@ExternalRefinementsFor("java.util.concurrent.Semaphore")
7+
public interface DummySemaphoreRefinements {
8+
9+
public abstract void acquire();
10+
11+
public abstract void acquire(@Refinement("_ >= 0") int permits) throws InterruptedException;
12+
}

0 commit comments

Comments
 (0)