@@ -74,12 +74,11 @@ public void match_statement() {
7474 assertThat (caseBlock .guard ()).isNull ();
7575 assertThat (caseBlock .body ().statements ()).extracting (Tree ::getKind ).containsExactly (Kind .EXPRESSION_STMT );
7676 assertThat (caseBlock .children ()).extracting (Tree ::getKind )
77- .containsExactly (Kind .TOKEN , Kind .LITERAL_PATTERN , Kind .TOKEN , Kind .STATEMENT_LIST );
77+ .containsExactly (Kind .TOKEN , Kind .NUMERIC_LITERAL_PATTERN , Kind .TOKEN , Kind .STATEMENT_LIST );
7878
7979 Pattern pattern = caseBlock .pattern ();
80- assertThat (pattern .getKind ()).isEqualTo (Kind .LITERAL_PATTERN );
80+ assertThat (pattern .getKind ()).isEqualTo (Kind .NUMERIC_LITERAL_PATTERN );
8181 LiteralPattern literalPattern = (LiteralPattern ) pattern ;
82- assertThat (literalPattern .literalKind ()).isEqualTo (LiteralPattern .LiteralKind .NUMBER );
8382 assertThat (literalPattern .children ()).extracting (Tree ::getKind )
8483 .containsExactly (Kind .TOKEN );
8584 }
@@ -130,41 +129,13 @@ public void case_block_with_guard() {
130129
131130 @ Test
132131 public void literal_patterns () {
133- setRootRule (PythonGrammar .CASE_BLOCK );
134- CaseBlock caseBlock = parse ("case \" foo\" : ..." , treeMaker ::caseBlock );
135- LiteralPattern literalPattern = (LiteralPattern ) caseBlock .pattern ();
136- assertThat (literalPattern .literalKind ()).isEqualTo (LiteralPattern .LiteralKind .STRING );
137- assertThat (literalPattern .valueAsString ()).isEqualTo ("\" foo\" " );
138-
139- caseBlock = parse ("case \" foo\" \" bar\" : ..." , treeMaker ::caseBlock );
140- literalPattern = (LiteralPattern ) caseBlock .pattern ();
141- assertThat (literalPattern .literalKind ()).isEqualTo (LiteralPattern .LiteralKind .STRING );
142- assertThat (literalPattern .valueAsString ()).isEqualTo ("\" foo\" \" bar\" " );
143-
144- caseBlock = parse ("case -42: ..." , treeMaker ::caseBlock );
145- literalPattern = (LiteralPattern ) caseBlock .pattern ();
146- assertThat (literalPattern .literalKind ()).isEqualTo (LiteralPattern .LiteralKind .NUMBER );
147- assertThat (literalPattern .valueAsString ()).isEqualTo ("-42" );
148-
149- caseBlock = parse ("case 3 + 5j: ..." , treeMaker ::caseBlock );
150- literalPattern = (LiteralPattern ) caseBlock .pattern ();
151- assertThat (literalPattern .literalKind ()).isEqualTo (LiteralPattern .LiteralKind .NUMBER );
152- assertThat (literalPattern .valueAsString ()).isEqualTo ("3+5j" );
153-
154- caseBlock = parse ("case None: ..." , treeMaker ::caseBlock );
155- literalPattern = (LiteralPattern ) caseBlock .pattern ();
156- assertThat (literalPattern .literalKind ()).isEqualTo (LiteralPattern .LiteralKind .NONE );
157- assertThat (literalPattern .valueAsString ()).isEqualTo ("None" );
158-
159- caseBlock = parse ("case True: ..." , treeMaker ::caseBlock );
160- literalPattern = (LiteralPattern ) caseBlock .pattern ();
161- assertThat (literalPattern .literalKind ()).isEqualTo (LiteralPattern .LiteralKind .BOOLEAN );
162- assertThat (literalPattern .valueAsString ()).isEqualTo ("True" );
163-
164- caseBlock = parse ("case False: ..." , treeMaker ::caseBlock );
165- literalPattern = (LiteralPattern ) caseBlock .pattern ();
166- assertThat (literalPattern .literalKind ()).isEqualTo (LiteralPattern .LiteralKind .BOOLEAN );
167- assertThat (literalPattern .valueAsString ()).isEqualTo ("False" );
132+ assertLiteralPattern (pattern ("case \" foo\" : ..." ), Kind .STRING_LITERAL_PATTERN , "\" foo\" " );
133+ assertLiteralPattern (pattern ("case \" foo\" \" bar\" : ..." ), Kind .STRING_LITERAL_PATTERN , "\" foo\" \" bar\" " );
134+ assertLiteralPattern (pattern ("case -42: ..." ), Kind .NUMERIC_LITERAL_PATTERN , "-42" );
135+ assertLiteralPattern (pattern ("case 3 + 5j: ..." ), Kind .NUMERIC_LITERAL_PATTERN , "3+5j" );
136+ assertLiteralPattern (pattern ("case None: ..." ), Kind .NONE_LITERAL_PATTERN , "None" );
137+ assertLiteralPattern (pattern ("case True: ..." ), Kind .BOOLEAN_LITERAL_PATTERN , "True" );
138+ assertLiteralPattern (pattern ("case False: ..." ), Kind .BOOLEAN_LITERAL_PATTERN , "False" );
168139 }
169140
170141 @ Test
@@ -184,7 +155,7 @@ public void as_pattern() {
184155 AsPattern asPattern = (AsPattern ) caseBlock .pattern ();
185156 assertThat (asPattern .pattern ()).isInstanceOf (LiteralPattern .class );
186157 assertThat (asPattern .alias ().name ()).isEqualTo ("x" );
187- assertThat (asPattern .children ()).extracting (Tree ::getKind ).containsExactly (Tree . Kind .LITERAL_PATTERN , Tree .Kind .TOKEN , Tree .Kind .NAME );
158+ assertThat (asPattern .children ()).extracting (Tree ::getKind ).containsExactly (Kind .STRING_LITERAL_PATTERN , Tree .Kind .TOKEN , Tree .Kind .NAME );
188159
189160 caseBlock = parse ("case value as x: ..." , treeMaker ::caseBlock );
190161 asPattern = (AsPattern ) caseBlock .pattern ();
@@ -353,6 +324,11 @@ private void assertSequenceElements(SequencePattern sequencePattern, Kind... ele
353324 assertThat (sequencePattern .elements ()).extracting (Tree ::getKind ).containsExactly (elements );
354325 }
355326
327+ private void assertLiteralPattern (LiteralPattern literalPattern , Kind literalKind , String valueAsString ) {
328+ assertThat (literalPattern .getKind ()).isEqualTo (literalKind );
329+ assertThat (literalPattern .valueAsString ()).isEqualTo (valueAsString );
330+ }
331+
356332 @ SuppressWarnings ("unchecked" )
357333 private <T extends Pattern > T pattern (String code ) {
358334 setRootRule (PythonGrammar .CASE_BLOCK );
0 commit comments