Skip to content

Commit 80e43b0

Browse files
authored
Merge branch 'CatarinaGamboa:main' into main
2 parents 56e47eb + d906b45 commit 80e43b0

File tree

47 files changed

+845
-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.

47 files changed

+845
-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();

liquidjava-example/src/main/java/testSuite/classes/conflicting_ghost_names_correct/StackRefinements.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public interface StackRefinements<E> {
1111
public void Stack();
1212

1313
@StateRefinement(to="size(this) == size(old(this)) + 1")
14-
public boolean push(E elem);
14+
public E push(E elem);
1515

1616
@StateRefinement(from="size(this) > 0", to="size(this) == size(old(this)) - 1")
1717
public E pop();
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+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package testSuite.classes.method_overload_error;
2+
3+
import java.util.concurrent.Semaphore;
4+
5+
public class TestMethodOverloadEror {
6+
public static void main(String[] args) throws InterruptedException {
7+
Semaphore sem = new Semaphore(1);
8+
sem.acquire(-1);
9+
}
10+
}

liquidjava-example/src/main/java/testSuite/math/correctInvocation/MathRefinements.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@ public interface MathRefinements {
1616
public int abs(int arg0);
1717

1818
@Refinement("(arg0 > 0)?( _ == arg0):(_ == -arg0)")
19-
public int abs(long arg0);
19+
public long abs(long arg0);
2020

2121
@Refinement("(arg0 > 0)?( _ == arg0):(_ == -arg0)")
22-
public int abs(float arg0);
22+
public float abs(float arg0);
2323

2424
@Refinement("(arg0 > 0)?( _ == arg0):(_ == -arg0)")
25-
public int abs(double arg0);
25+
public double abs(double arg0);
2626

2727
@Refinement(" _ == a+b")
2828
public int addExact(int a, int b);
@@ -43,13 +43,13 @@ public interface MathRefinements {
4343
public int decrementExact(int a);
4444

4545
@Refinement("_ == (a-1)")
46-
public int decrementExact(long a);
46+
public long decrementExact(long a);
4747

4848
@Refinement("_ == (a+1)")
4949
public int incrementExact(int a);
5050

5151
@Refinement("_ == (a+1)")
52-
public int incrementExact(long a);
52+
public long incrementExact(long a);
5353

5454
@Refinement("(a > b)? (_ == a):(_ == b)")
5555
public int max(int a, int b);

0 commit comments

Comments
 (0)