Files
Tagir Valeev a41ef84fea [java] Unnamed variables
IDEA-323910 Implement parser for "JEP 443: Unnamed Patterns and Variables (Preview)"
IDEA-323960 Support error highlighting for unnamed variables (JEP 443)

GitOrigin-RevId: 1b9ee424063dfd4d32c2215fc8b0a9838dbdcd95
2023-07-31 13:41:28 +00:00

42 lines
2.1 KiB
Java

import java.util.function.*;
public class UnnamedVariables {
void testParameter(int <error descr="Variable '_' is already defined in the scope">_</error>, String <error descr="Variable '_' is already defined in the scope">_</error>) {
System.out.println(_);
}
int _ = 123;
<error descr="Incompatible types. Found: 'int', required: 'java.lang.String'">String s = _;</error>
void testLambda() {
Consumer<String> consumer = <error descr="Use of '_' as a lambda parameter name is not allowed">_</error> -> System.out.println("Hello");
Consumer<String> consumer2 = <error descr="Use of '_' as a lambda parameter name is not allowed">_</error> -> System.out.println(_);
Consumer<String> consumer3 = <error descr="Use of '_' as a lambda parameter name is not allowed">_</error> -> System.out.println(_.trim());
Consumer<String> consumer4 = <error descr="Use of '_' as a lambda parameter name is not allowed">_</error> -> {
<error descr="Cannot resolve symbol 'var'" textAttributesKey="WRONG_REFERENCES_ATTRIBUTES">var</error> v = _;
System.out.println(v.<error descr="Cannot resolve method 'trim()'" textAttributesKey="WRONG_REFERENCES_ATTRIBUTES">trim</error>());
};
BiConsumer<String, String> consumer5 = (<error descr="Use of '_' as a lambda parameter name is not allowed"><error descr="Variable '_' is already defined in the scope">_</error></error>,<error descr="Use of '_' as a lambda parameter name is not allowed"><error descr="Variable '_' is already defined in the scope">_</error></error>) -> {};
}
void testLocal() {
int _ = 10;
int <error descr="Variable '_' is already defined in the scope">_</error> = 20;
for (int <error descr="Variable '_' is already defined in the scope">_</error> = 1;;) {}
}
void testCatch() {
try {
System.out.println();
}
catch (Exception _) {
System.out.println("ignore");
}
catch (Error _) {
int <error descr="Variable '_' is already defined in the scope">_</error> = 1;
for(int <error descr="Variable '_' is already defined in the scope">_</error>:new int[10]) {
System.out.println("oops");
}
}
}
}