runtime(java): Optionally recognise all primitive constants in _switch-case_ labels
Define "g:java_syntax_previews" and include number 455 in its list to enable this recognition: ------------------------------------------------------------ let g:java_syntax_previews = [455] ------------------------------------------------------------ Reference: https://openjdk.org/jeps/455 closes: #15698 Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
41c7bbaf8f
commit
23079450a8
20
runtime/syntax/testdir/dumps/java_previews_455_00.dump
Normal file
20
runtime/syntax/testdir/dumps/java_previews_455_00.dump
Normal file
@ -0,0 +1,20 @@
|
||||
>/+0#0000e05#ffffff0@1| |V|I|M|_|T|E|S|T|_|S|E|T|U|P| |l|e|t| |g|:|j|a|v|a|_|s|y|n|t|a|x|_|p|r|e|v|i|e|w|s| |=| |[|4|5@1|]| +0#0000000&@22
|
||||
@75
|
||||
@75
|
||||
@75
|
||||
|c+0#00e0003&|l|a|s@1| +0#0000000&|P|r|i|m|i|t|i|v|e|S|w|i|t|c|h|T|e|s|t|s| @1|/+0#0000e05&@1| |J|D|K| |2|3|+| |(|-@1|e|n|a|b|l|e|-|p|r|e|v|i|e|w| |-@1|r|e|l|e|a|s|e| |2|3|)|.| +0#0000000&@3
|
||||
|{| @73
|
||||
@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|v+0#00e0003&|o|i|d| +0#0000000&|e|c|h|o|(|O|b|j|e|c|t| |o|)| |{| |S|y|s|t|e|m|.|o|u|t|.|p|r|i|n|t|l|n|(|o|)|;| |}| @17
|
||||
@75
|
||||
@4|s+0#00e0003&|t|a|t|i|c| +0#0000000&|{| @62
|
||||
@8|l+0#00e0003&|o|n|g| +0#0000000&|g| |=| |2+0#e000002&|L|;+0#0000000&| @54
|
||||
@75
|
||||
@8|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|g|)| |{| @54
|
||||
@8|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|L|:+0#0000000&| @7|{| |e|c|h|o|(|0+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @30
|
||||
@8|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|L|:+0#0000000&| @7|{| |e|c|h|o|(|1+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @30
|
||||
@8|d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| @7|{| |e|c|h|o|(|-|1+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @29
|
||||
@8|}| @65
|
||||
@75
|
||||
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|g|)| |{| @49
|
||||
@12|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|L| +0#0000000&@4|-|>| |0+0#e000002&|L|;+0#0000000&| @44
|
||||
@57|1|,|1| @10|T|o|p|
|
||||
20
runtime/syntax/testdir/dumps/java_previews_455_01.dump
Normal file
20
runtime/syntax/testdir/dumps/java_previews_455_01.dump
Normal file
@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@7|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|L|:+0#0000000&| @7|{| |e|c|h|o|(|1+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @30
|
||||
@8|d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| @7|{| |e|c|h|o|(|-|1+0#e000002&|L|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @29
|
||||
@8|}| @65
|
||||
@75
|
||||
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|g|)| |{| @49
|
||||
@12>c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|L| +0#0000000&@4|-|>| |0+0#e000002&|L|;+0#0000000&| @44
|
||||
@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|L| +0#0000000&@4|-|>| |1+0#e000002&|L|;+0#0000000&| @44
|
||||
@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&@4|-|>| |-|1+0#e000002&|L|;+0#0000000&| @43
|
||||
@8|}|)|;| @63
|
||||
@75
|
||||
@8|b+0#00e0003&|o@1|l|e|a|n| +0#0000000&|b|o@1|l| |=| |f+0#e000002&|a|l|s|e|;+0#0000000&| @45
|
||||
@75
|
||||
@8|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|b|o@1|l|)| |{| @51
|
||||
@8|c+0#af5f00255&|a|s|e| +0#0000000&|t+0#e000002&|r|u|e|:+0#0000000&| @5|{| |e|c|h|o|(|t+0#e000002&|r|u|e|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @28
|
||||
@8|c+0#af5f00255&|a|s|e| +0#0000000&|f+0#e000002&|a|l|s|e|:+0#0000000&| @4|{| |e|c|h|o|(|f+0#e000002&|a|l|s|e|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @27
|
||||
@8|}| @65
|
||||
@75
|
||||
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|b|o@1|l|)| |{| @46
|
||||
@12|c+0#af5f00255&|a|s|e| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@2|-|>| |t+0#e000002&|r|u|e|;+0#0000000&| @42
|
||||
@57|1|9|,|4|-|1|3| @6|2|8|%|
|
||||
20
runtime/syntax/testdir/dumps/java_previews_455_02.dump
Normal file
20
runtime/syntax/testdir/dumps/java_previews_455_02.dump
Normal file
@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@11|c+0#af5f00255&|a|s|e| +0#0000000&|t+0#e000002&|r|u|e| +0#0000000&@2|-|>| |t+0#e000002&|r|u|e|;+0#0000000&| @42
|
||||
@12|c+0#af5f00255&|a|s|e| +0#0000000&|f+0#e000002&|a|l|s|e| +0#0000000&@1|-|>| |f+0#e000002&|a|l|s|e|;+0#0000000&| @41
|
||||
@8|}|)|;| @63
|
||||
@75
|
||||
@8|f+0#00e0003&|l|o|a|t| +0#0000000&|f| |=| |2+0#e000002&|.|0|f|;+0#0000000&| @51
|
||||
> @74
|
||||
@8|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|f|)| |{| @54
|
||||
@8|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|.|0|f|:+0#0000000&| @5|{| |e|c|h|o|(|0+0#e000002&|.|0|f|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @28
|
||||
@8|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|.|0|f|:+0#0000000&| @5|{| |e|c|h|o|(|1+0#e000002&|.|0|f|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @28
|
||||
@8|d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| @7|{| |e|c|h|o|(|-|1+0#e000002&|.|0|f|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @27
|
||||
@8|}| @65
|
||||
@75
|
||||
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|f|)| |{| @49
|
||||
@12|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|.|0|f| +0#0000000&@2|-|>| |0+0#e000002&|.|0|f|;+0#0000000&| @42
|
||||
@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|.|0|f| +0#0000000&@2|-|>| |1+0#e000002&|.|0|f|;+0#0000000&| @42
|
||||
@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&@4|-|>| |-|1+0#e000002&|.|0|f|;+0#0000000&| @41
|
||||
@8|}|)|;| @63
|
||||
@75
|
||||
@8|d+0#00e0003&|o|u|b|l|e| +0#0000000&|d| |=| |2+0#e000002&|.|0|;+0#0000000&| @51
|
||||
@57|3|7|,|0|-|1| @7|6|8|%|
|
||||
20
runtime/syntax/testdir/dumps/java_previews_455_03.dump
Normal file
20
runtime/syntax/testdir/dumps/java_previews_455_03.dump
Normal file
@ -0,0 +1,20 @@
|
||||
| +0&#ffffff0@7|d+0#00e0003&|o|u|b|l|e| +0#0000000&|d| |=| |2+0#e000002&|.|0|;+0#0000000&| @51
|
||||
@75
|
||||
@8|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|d|)| |{| @54
|
||||
@8|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|.|0|:+0#0000000&| @6|{| |e|c|h|o|(|0+0#e000002&|.|0|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @29
|
||||
@8|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|.|0|:+0#0000000&| @6|{| |e|c|h|o|(|1+0#e000002&|.|0|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @29
|
||||
@8>d+0#af5f00255&|e|f|a|u|l|t|:+0#0000000&| @7|{| |e|c|h|o|(|-|1+0#e000002&|.|0|)+0#0000000&|;| |b+0#af5f00255&|r|e|a|k|;+0#0000000&| |}| @28
|
||||
@8|}| @65
|
||||
@75
|
||||
@8|e|c|h|o|(|s+0#af5f00255&|w|i|t|c|h| +0#0000000&|(|d|)| |{| @49
|
||||
@12|c+0#af5f00255&|a|s|e| +0#0000000&|0+0#e000002&|.|0| +0#0000000&@3|-|>| |0+0#e000002&|.|0|;+0#0000000&| @43
|
||||
@12|c+0#af5f00255&|a|s|e| +0#0000000&|1+0#e000002&|.|0| +0#0000000&@3|-|>| |1+0#e000002&|.|0|;+0#0000000&| @43
|
||||
@12|d+0#af5f00255&|e|f|a|u|l|t| +0#0000000&@4|-|>| |-|1+0#e000002&|.|0|;+0#0000000&| @42
|
||||
@8|}|)|;| @63
|
||||
@4|}| @69
|
||||
|}| @73
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
|~| @73
|
||||
| +0#0000000&@56|5@1|,|3|-|9| @7|B|o|t|
|
||||
64
runtime/syntax/testdir/input/java_previews_455.java
Normal file
64
runtime/syntax/testdir/input/java_previews_455.java
Normal file
@ -0,0 +1,64 @@
|
||||
// VIM_TEST_SETUP let g:java_syntax_previews = [455]
|
||||
|
||||
|
||||
|
||||
class PrimitiveSwitchTests // JDK 23+ (--enable-preview --release 23).
|
||||
{
|
||||
static void echo(Object o) { System.out.println(o); }
|
||||
|
||||
static {
|
||||
long g = 2L;
|
||||
|
||||
switch (g) {
|
||||
case 0L: { echo(0L); break; }
|
||||
case 1L: { echo(1L); break; }
|
||||
default: { echo(-1L); break; }
|
||||
}
|
||||
|
||||
echo(switch (g) {
|
||||
case 0L -> 0L;
|
||||
case 1L -> 1L;
|
||||
default -> -1L;
|
||||
});
|
||||
|
||||
boolean bool = false;
|
||||
|
||||
switch (bool) {
|
||||
case true: { echo(true); break; }
|
||||
case false: { echo(false); break; }
|
||||
}
|
||||
|
||||
echo(switch (bool) {
|
||||
case true -> true;
|
||||
case false -> false;
|
||||
});
|
||||
|
||||
float f = 2.0f;
|
||||
|
||||
switch (f) {
|
||||
case 0.0f: { echo(0.0f); break; }
|
||||
case 1.0f: { echo(1.0f); break; }
|
||||
default: { echo(-1.0f); break; }
|
||||
}
|
||||
|
||||
echo(switch (f) {
|
||||
case 0.0f -> 0.0f;
|
||||
case 1.0f -> 1.0f;
|
||||
default -> -1.0f;
|
||||
});
|
||||
|
||||
double d = 2.0;
|
||||
|
||||
switch (d) {
|
||||
case 0.0: { echo(0.0); break; }
|
||||
case 1.0: { echo(1.0); break; }
|
||||
default: { echo(-1.0); break; }
|
||||
}
|
||||
|
||||
echo(switch (d) {
|
||||
case 0.0 -> 0.0;
|
||||
case 1.0 -> 1.0;
|
||||
default -> -1.0;
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user