package org.jetbrains.annotations; import java.lang.annotation.*; import java.util.*; @Target({ElementType.METHOD, ElementType.CONSTRUCTOR}) @interface Contract { String value() default ""; boolean pure() default false; String mutates() default ""; } class Test { @Contract(mutates = "this") public static void test1(List list) {} @Contract(mutates = "param3") public static void test2(List list) {} @Contract(mutates = "blahblahblah") public static void test3(List list) {} @Contract(mutates = "param") public static void test4(List list) {} @Contract(mutates = "param", pure = true) public static void test5(List list) {} @Contract(mutates = "param", pure = false) public static void test6(List list) {} @Contract(mutates = "", pure = true) public static void test7(List list) {} @Contract(mutates = "param1") public static void test8(String s, int i, List list) {} @Contract(mutates = "param2") public static void test9(String s, int i, List list) {} @Contract(mutates = "param3") public static void test10(String s, int i, List list) {} }