diff options
author | Damien Martin-Guillerez <dmarting@google.com> | 2016-06-29 14:24:16 +0200 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-06-30 15:11:05 +0200 |
commit | a18add1613574a15c81f60bde847c5d7b2bedcb5 (patch) | |
tree | 103fa812c66403f5e8caefb898ea3f18107865dc /third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/analysis/AbstractValue.java | |
parent | 14c7964b8bc0da2bab65b1c28aa8c302846d7720 (diff) |
Adds the source of the checker framework
This needs to predate the rest of the changes to the checker framework to keep the build green.
Also add the source of javacutil part of the checker framework, that will be included in the next change.
Change-Id: Ie18d0e8e21035ce5141416e552a83d893f71b88b
Diffstat (limited to 'third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/analysis/AbstractValue.java')
-rw-r--r-- | third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/analysis/AbstractValue.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/analysis/AbstractValue.java b/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/analysis/AbstractValue.java new file mode 100644 index 0000000000..2dbcbd4b03 --- /dev/null +++ b/third_party/checker_framework_dataflow/java/org/checkerframework/dataflow/analysis/AbstractValue.java @@ -0,0 +1,27 @@ +package org.checkerframework.dataflow.analysis; + +/** + * An abstract value used in the org.checkerframework.dataflow analysis. + * + * @author Stefan Heule + * + */ +public interface AbstractValue<V extends AbstractValue<V>> { + + /** + * Compute the least upper bound of two stores. + * + * <p> + * + * <em>Important</em>: This method must fulfill the following contract: + * <ul> + * <li>Does not change {@code this}.</li> + * <li>Does not change {@code other}.</li> + * <li>Returns a fresh object which is not aliased yet.</li> + * <li>Returns an object of the same (dynamic) type as {@code this}, even if + * the signature is more permissive.</li> + * <li>Is commutative.</li> + * </ul> + */ + V leastUpperBound(V other); +} |