mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-191570 Mutates contracts should be changed from "argN" to "paramN"
This commit is contained in:
+12
-12
@@ -14,13 +14,13 @@ public class MutationSignature {
|
||||
private static final String CONTRACT_ANNOTATION = "org.jetbrains.annotations.Contract";
|
||||
private static final MutationSignature UNKNOWN = new MutationSignature(false, new boolean[0]);
|
||||
private static final MutationSignature PURE = new MutationSignature(false, new boolean[0]);
|
||||
public static final String INVALID_TOKEN_MESSAGE = "Invalid token: %s; supported are 'this', 'arg1', 'arg2', etc.";
|
||||
public static final String INVALID_TOKEN_MESSAGE = "Invalid token: %s; supported are 'this', 'param1', 'param2', etc.";
|
||||
private final boolean myThis;
|
||||
private final boolean[] myArgs;
|
||||
private final boolean[] myParameters;
|
||||
|
||||
private MutationSignature(boolean mutatesThis, boolean[] args) {
|
||||
private MutationSignature(boolean mutatesThis, boolean[] params) {
|
||||
myThis = mutatesThis;
|
||||
myArgs = args;
|
||||
myParameters = params;
|
||||
}
|
||||
|
||||
public boolean mutatesThis() {
|
||||
@@ -28,7 +28,7 @@ public class MutationSignature {
|
||||
}
|
||||
|
||||
public boolean mutatesArg(int n) {
|
||||
return n < myArgs.length && myArgs[n];
|
||||
return n < myParameters.length && myParameters[n];
|
||||
}
|
||||
|
||||
public boolean preservesThis() {
|
||||
@@ -55,15 +55,15 @@ public class MutationSignature {
|
||||
if (part.equals("this")) {
|
||||
mutatesThis = true;
|
||||
}
|
||||
else if (part.equals("arg")) {
|
||||
else if (part.equals("param")) {
|
||||
if (args.length == 0) {
|
||||
args = new boolean[] {true};
|
||||
} else {
|
||||
args[0] = true;
|
||||
}
|
||||
}
|
||||
else if (part.startsWith("arg")) {
|
||||
int argNum = Integer.parseInt(part.substring("arg".length()));
|
||||
else if (part.startsWith("param")) {
|
||||
int argNum = Integer.parseInt(part.substring("param".length()));
|
||||
if (argNum < 0 || argNum > 255) {
|
||||
throw new IllegalArgumentException(String.format(INVALID_TOKEN_MESSAGE, part));
|
||||
}
|
||||
@@ -93,11 +93,11 @@ public class MutationSignature {
|
||||
return "Static method cannot mutate 'this'";
|
||||
}
|
||||
PsiParameter[] parameters = method.getParameterList().getParameters();
|
||||
if (ms.myArgs.length > parameters.length) {
|
||||
return "Reference to parameter #" + ms.myArgs.length + " is invalid";
|
||||
if (ms.myParameters.length > parameters.length) {
|
||||
return "Reference to parameter #" + ms.myParameters.length + " is invalid";
|
||||
}
|
||||
for (int i = 0; i < ms.myArgs.length; i++) {
|
||||
if (ms.myArgs[i]) {
|
||||
for (int i = 0; i < ms.myParameters.length; i++) {
|
||||
if (ms.myParameters[i]) {
|
||||
PsiType type = parameters[i].getType();
|
||||
if (ClassUtils.isImmutable(type)) {
|
||||
return "Parameter #" + (i + 1) + " has immutable type '" + type.getPresentableText() + "'";
|
||||
|
||||
+8
-8
@@ -14,30 +14,30 @@ class Test {
|
||||
@Contract(mutates = <warning descr="Static method cannot mutate 'this'">"this"</warning>)
|
||||
public static void test1(List<String> list) {}
|
||||
|
||||
@Contract(mutates = <warning descr="Reference to parameter #3 is invalid">"arg3"</warning>)
|
||||
@Contract(mutates = <warning descr="Reference to parameter #3 is invalid">"param3"</warning>)
|
||||
public static void test2(List<String> list) {}
|
||||
|
||||
@Contract(mutates = <warning descr="Invalid token: blahblahblah; supported are 'this', 'arg1', 'arg2', etc.">"blahblahblah"</warning>)
|
||||
@Contract(mutates = <warning descr="Invalid token: blahblahblah; supported are 'this', 'param1', 'param2', etc.">"blahblahblah"</warning>)
|
||||
public static void test3(List<String> list) {}
|
||||
|
||||
@Contract(mutates = "arg")
|
||||
@Contract(mutates = "param")
|
||||
public static void test4(List<String> list) {}
|
||||
|
||||
@Contract(mutates = <warning descr="Pure method cannot have mutation contract">"arg"</warning>, pure = true)
|
||||
@Contract(mutates = <warning descr="Pure method cannot have mutation contract">"param"</warning>, pure = true)
|
||||
public static void test5(List<String> list) {}
|
||||
|
||||
@Contract(mutates = "arg", pure = false)
|
||||
@Contract(mutates = "param", pure = false)
|
||||
public static void test6(List<String> list) {}
|
||||
|
||||
@Contract(mutates = "", pure = true)
|
||||
public static void test7(List<String> list) {}
|
||||
|
||||
@Contract(mutates = <warning descr="Parameter #1 has immutable type 'String'">"arg1"</warning>)
|
||||
@Contract(mutates = <warning descr="Parameter #1 has immutable type 'String'">"param1"</warning>)
|
||||
public static void test8(String s, int i, List<String> list) {}
|
||||
|
||||
@Contract(mutates = <warning descr="Parameter #2 has immutable type 'int'">"arg2"</warning>)
|
||||
@Contract(mutates = <warning descr="Parameter #2 has immutable type 'int'">"param2"</warning>)
|
||||
public static void test9(String s, int i, List<String> list) {}
|
||||
|
||||
@Contract(mutates = "arg3")
|
||||
@Contract(mutates = "param3")
|
||||
public static void test10(String s, int i, List<String> list) {}
|
||||
}
|
||||
@@ -12,12 +12,12 @@ public class MutabilityBasics {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Contract(<error descr="Cannot resolve method 'mutates'">mutates</error> = "arg")
|
||||
@Contract(<error descr="Cannot resolve method 'mutates'">mutates</error> = "param")
|
||||
static <T extends Comparable<T>> void sort(List<T> collection) {
|
||||
Collections.sort(collection);
|
||||
}
|
||||
|
||||
@Contract(<error descr="Cannot resolve method 'mutates'">mutates</error> = "arg1")
|
||||
@Contract(<error descr="Cannot resolve method 'mutates'">mutates</error> = "param1")
|
||||
static <T extends Comparable<T>> void addAll(Collection<T> collection, List<T> other) {
|
||||
sort(<warning descr="Immutable object is passed where mutable is expected">other</warning>);
|
||||
collection.addAll(other);
|
||||
|
||||
@@ -721,7 +721,7 @@
|
||||
</item>
|
||||
<item name='java.lang.Thread int enumerate(java.lang.Thread[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg""/>
|
||||
<val name="mutates" val=""param""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.lang.Thread java.lang.StackTraceElement[] getStackTrace()'>
|
||||
|
||||
@@ -368,7 +368,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(boolean[], boolean)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(boolean[], boolean) 0">
|
||||
@@ -376,7 +376,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(boolean[], int, int, boolean)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(boolean[], int, int, boolean) 0">
|
||||
@@ -384,7 +384,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(byte[], byte)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(byte[], byte) 0">
|
||||
@@ -392,7 +392,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(byte[], int, int, byte)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(byte[], int, int, byte) 0">
|
||||
@@ -400,7 +400,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(char[], char)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(char[], char) 0">
|
||||
@@ -408,7 +408,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(char[], int, int, char)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(char[], int, int, char) 0">
|
||||
@@ -416,7 +416,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(double[], double)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(double[], double) 0">
|
||||
@@ -424,7 +424,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(double[], int, int, double)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(double[], int, int, double) 0">
|
||||
@@ -432,7 +432,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(float[], float)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(float[], float) 0">
|
||||
@@ -440,7 +440,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(float[], int, int, float)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(float[], int, int, float) 0">
|
||||
@@ -448,7 +448,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(int[], int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(int[], int) 0">
|
||||
@@ -456,7 +456,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(int[], int, int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(int[], int, int, int) 0">
|
||||
@@ -464,7 +464,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(java.lang.Object[], int, int, java.lang.Object)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(java.lang.Object[], int, int, java.lang.Object) 0">
|
||||
@@ -472,7 +472,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(java.lang.Object[], java.lang.Object)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(java.lang.Object[], java.lang.Object) 0">
|
||||
@@ -480,7 +480,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(long[], int, int, long)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(long[], int, int, long) 0">
|
||||
@@ -488,7 +488,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(long[], long)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(long[], long) 0">
|
||||
@@ -496,7 +496,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(short[], int, int, short)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(short[], int, int, short) 0">
|
||||
@@ -504,7 +504,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void fill(short[], short)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void fill(short[], short) 0">
|
||||
@@ -512,177 +512,177 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelPrefix(T[], int, int, java.util.function.BinaryOperator<T>)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelPrefix(T[], java.util.function.BinaryOperator<T>)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelPrefix(double[], int, int, java.util.function.DoubleBinaryOperator)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelPrefix(double[], java.util.function.DoubleBinaryOperator)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelPrefix(int[], int, int, java.util.function.IntBinaryOperator)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelPrefix(int[], java.util.function.IntBinaryOperator)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelPrefix(long[], int, int, java.util.function.LongBinaryOperator)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelPrefix(long[], java.util.function.LongBinaryOperator)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSetAll(T[], java.util.function.IntFunction<? extends T>)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSetAll(double[], java.util.function.IntToDoubleFunction)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSetAll(int[], java.util.function.IntUnaryOperator)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSetAll(long[], java.util.function.IntToLongFunction)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(T[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(T[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(T[], int, int, java.util.Comparator<? super T>)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(T[], java.util.Comparator<? super T>)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(byte[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(byte[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(char[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(char[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(double[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(double[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(float[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(float[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(int[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(int[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(long[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(long[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(short[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void parallelSort(short[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void setAll(T[], java.util.function.IntFunction<? extends T>)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void setAll(double[], java.util.function.IntToDoubleFunction)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void setAll(int[], java.util.function.IntUnaryOperator)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void setAll(long[], java.util.function.IntToLongFunction)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(T[], int, int, java.util.Comparator<? super T>)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(T[], int, int, java.util.Comparator<? super T>) 0">
|
||||
@@ -693,7 +693,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(T[], java.util.Comparator<? super T>)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(T[], java.util.Comparator<? super T>) 0'>
|
||||
@@ -704,7 +704,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(byte[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(byte[]) 0">
|
||||
@@ -712,7 +712,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(byte[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(byte[], int, int) 0">
|
||||
@@ -720,7 +720,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(char[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(char[]) 0">
|
||||
@@ -728,7 +728,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(char[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(char[], int, int) 0">
|
||||
@@ -736,7 +736,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(double[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(double[]) 0">
|
||||
@@ -744,7 +744,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(double[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(double[], int, int) 0">
|
||||
@@ -752,7 +752,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(float[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(float[]) 0">
|
||||
@@ -760,7 +760,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(float[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(float[], int, int) 0">
|
||||
@@ -768,7 +768,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(int[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(int[]) 0">
|
||||
@@ -776,7 +776,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(int[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(int[], int, int) 0">
|
||||
@@ -784,7 +784,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(java.lang.Object[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(java.lang.Object[]) 0">
|
||||
@@ -792,7 +792,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(java.lang.Object[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(java.lang.Object[], int, int) 0">
|
||||
@@ -800,7 +800,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(long[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(long[]) 0">
|
||||
@@ -808,7 +808,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(long[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(long[], int, int) 0">
|
||||
@@ -816,7 +816,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(short[])'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(short[]) 0">
|
||||
@@ -824,7 +824,7 @@
|
||||
</item>
|
||||
<item name='java.util.Arrays void sort(short[], int, int)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Arrays void sort(short[], int, int) 0">
|
||||
@@ -1056,7 +1056,7 @@
|
||||
</item>
|
||||
<item name='java.util.Collections boolean addAll(java.util.Collection<? super T>, T...)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections boolean addAll(java.util.Collection<? super T>, T...) 0">
|
||||
@@ -1073,7 +1073,7 @@
|
||||
</item>
|
||||
<item name='java.util.Collections boolean replaceAll(java.util.List<T>, T, T)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections boolean replaceAll(java.util.List<T>, T, T) 0">
|
||||
@@ -1297,7 +1297,7 @@
|
||||
</item>
|
||||
<item name='java.util.Collections void copy(java.util.List<? super T>, java.util.List<? extends T>)'>
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections void copy(java.util.List<? super T>, java.util.List<? extends T>) 0">
|
||||
@@ -1308,7 +1308,7 @@
|
||||
</item>
|
||||
<item name="java.util.Collections void fill(java.util.List<? super T>, T)">
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections void fill(java.util.List<? super T>, T) 0">
|
||||
@@ -1316,7 +1316,7 @@
|
||||
</item>
|
||||
<item name="java.util.Collections void reverse(java.util.List<?>)">
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections void reverse(java.util.List<?>) 0">
|
||||
@@ -1324,7 +1324,7 @@
|
||||
</item>
|
||||
<item name="java.util.Collections void rotate(java.util.List<?>, int)">
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections void rotate(java.util.List<?>, int) 0">
|
||||
@@ -1332,7 +1332,7 @@
|
||||
</item>
|
||||
<item name="java.util.Collections void shuffle(java.util.List<?>)">
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections void shuffle(java.util.List<?>) 0">
|
||||
@@ -1340,7 +1340,7 @@
|
||||
</item>
|
||||
<item name="java.util.Collections void shuffle(java.util.List<?>, java.util.Random)">
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections void shuffle(java.util.List<?>, java.util.Random) 0">
|
||||
@@ -1351,7 +1351,7 @@
|
||||
</item>
|
||||
<item name="java.util.Collections void sort(java.util.List<T>)">
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections void sort(java.util.List<T>) 0">
|
||||
@@ -1359,7 +1359,7 @@
|
||||
</item>
|
||||
<item name="java.util.Collections void sort(java.util.List<T>, java.util.Comparator<? super T>)">
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections void sort(java.util.List<T>, java.util.Comparator<? super T>) 0">
|
||||
@@ -1370,7 +1370,7 @@
|
||||
</item>
|
||||
<item name="java.util.Collections void swap(java.util.List<?>, int, int)">
|
||||
<annotation name='org.jetbrains.annotations.Contract'>
|
||||
<val name="mutates" val=""arg1""/>
|
||||
<val name="mutates" val=""param1""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name="java.util.Collections void swap(java.util.List<?>, int, int) 0">
|
||||
|
||||
@@ -81,9 +81,9 @@ public @interface Contract {
|
||||
* The following values are possible:
|
||||
* <table summary="">
|
||||
* <tr><td>"this"</td><td>Method mutates the receiver object, and doesn't mutates any objects passed as arguments (cannot be applied for static method or constructor)</td></tr>
|
||||
* <tr><td>"arg"</td><td>Method mutates the sole argument and doesn't mutate the receiver object (if applicable)</td></tr>
|
||||
* <tr><td>"arg1", "arg2", ...</td><td>Method mutates the N-th argument</td></tr>
|
||||
* <tr><td>"this,arg1"</td><td>Method mutates the receiver and first argument and doesn't mutate any other arguments</td></tr>
|
||||
* <tr><td>"param"</td><td>Method mutates the sole argument and doesn't mutate the receiver object (if applicable)</td></tr>
|
||||
* <tr><td>"param1", "param2", ...</td><td>Method mutates the N-th argument</td></tr>
|
||||
* <tr><td>"this,param1"</td><td>Method mutates the receiver and first argument and doesn't mutate any other arguments</td></tr>
|
||||
* </table>
|
||||
*
|
||||
* <strong>Warning: This annotation parameter is experimental and may be changed or removed without further notice!</strong>
|
||||
|
||||
Reference in New Issue
Block a user