mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 11:50:54 +07:00
[groovy] IDEA-278455: Fix parsing tests
GitOrigin-RevId: cf20544bc6452cc07b5d24e6abb0c76bc3b2dec2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a4df9c9821
commit
70e2b5be51
@@ -27,7 +27,7 @@ class GrUnnecessaryDefModifierInspection : GrUnnecessaryModifierInspection("def"
|
||||
}
|
||||
|
||||
override fun isRedundant(element: PsiElement): Boolean {
|
||||
val modifierList = element as? GrModifierList ?: return false
|
||||
val modifierList = element.parent as? GrModifierList ?: return false
|
||||
return isModifierUnnecessary(modifierList)
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ private val forbidLambdaExpression: Key<Boolean> = Key.create("groovy.parse.defe
|
||||
private val compactConstructors: Key<Boolean> = Key.create("groovy.parse.contracted.constructors")
|
||||
|
||||
fun classIdentifier(builder: PsiBuilder, level: Int): Boolean {
|
||||
if (builder.tokenType === IDENTIFIER) {
|
||||
if (builder.tokenType === IDENTIFIER || builder.tokenType === KW_RECORD) {
|
||||
builder[currentClassNames]!!.push(builder.tokenText)
|
||||
builder.advanceLexer()
|
||||
return true
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||
package org.jetbrains.plugins.groovy.lang.parser
|
||||
|
||||
class RecordParsingTest extends GroovyParsingTestCase {
|
||||
@Override
|
||||
String getBasePath() {
|
||||
return super.basePath + "types/record"
|
||||
}
|
||||
|
||||
void testRecord1() { doTest() }
|
||||
|
||||
void testRecord2() { doTest() }
|
||||
|
||||
void testRecord3() { doTest() }
|
||||
|
||||
void testRecord4() { doTest() }
|
||||
|
||||
void testRecord5() { doTest() }
|
||||
|
||||
void testRecord6() { doTest() }
|
||||
}
|
||||
@@ -7,6 +7,7 @@ interface
|
||||
package
|
||||
protected
|
||||
public
|
||||
record
|
||||
static
|
||||
strictfp
|
||||
switch
|
||||
|
||||
@@ -16,6 +16,7 @@ interface
|
||||
long
|
||||
native
|
||||
non-sealed
|
||||
record
|
||||
sealed
|
||||
short
|
||||
static
|
||||
|
||||
@@ -19,6 +19,7 @@ non-sealed
|
||||
private
|
||||
protected
|
||||
public
|
||||
record
|
||||
sealed
|
||||
short
|
||||
static
|
||||
|
||||
@@ -7,4 +7,5 @@ class
|
||||
default
|
||||
enum
|
||||
interface
|
||||
record
|
||||
trait
|
||||
@@ -29,6 +29,7 @@ package
|
||||
private
|
||||
protected
|
||||
public
|
||||
record
|
||||
return
|
||||
sealed
|
||||
short
|
||||
|
||||
@@ -26,6 +26,7 @@ package
|
||||
private
|
||||
protected
|
||||
public
|
||||
record
|
||||
return
|
||||
sealed
|
||||
short
|
||||
|
||||
@@ -22,6 +22,7 @@ non-sealed
|
||||
private
|
||||
protected
|
||||
public
|
||||
record
|
||||
sealed
|
||||
short
|
||||
static
|
||||
|
||||
@@ -35,6 +35,7 @@ package
|
||||
private
|
||||
protected
|
||||
public
|
||||
record
|
||||
return
|
||||
sealed
|
||||
short
|
||||
|
||||
@@ -29,6 +29,7 @@ non-sealed
|
||||
private
|
||||
protected
|
||||
public
|
||||
record
|
||||
sealed
|
||||
short
|
||||
static
|
||||
|
||||
@@ -36,6 +36,7 @@ null
|
||||
private
|
||||
protected
|
||||
public
|
||||
record
|
||||
return
|
||||
sealed
|
||||
short
|
||||
|
||||
@@ -28,6 +28,7 @@ non-sealed
|
||||
private
|
||||
protected
|
||||
public
|
||||
record
|
||||
sealed
|
||||
short
|
||||
static
|
||||
|
||||
18
plugins/groovy/testdata/parsing/groovy/types/record/record1.test
vendored
Normal file
18
plugins/groovy/testdata/parsing/groovy/types/record/record1.test
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
record A() {}
|
||||
-----
|
||||
Groovy script
|
||||
Class definition
|
||||
Modifiers
|
||||
<empty list>
|
||||
PsiElement(record)('record')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(identifier)('A')
|
||||
Parameter list
|
||||
PsiElement(()('(')
|
||||
PsiElement())(')')
|
||||
Implements clause
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
Type definition body
|
||||
PsiElement({)('{')
|
||||
PsiElement(})('}')
|
||||
39
plugins/groovy/testdata/parsing/groovy/types/record/record2.test
vendored
Normal file
39
plugins/groovy/testdata/parsing/groovy/types/record/record2.test
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
record A(int a, String b) implements C {}
|
||||
-----
|
||||
Groovy script
|
||||
Class definition
|
||||
Modifiers
|
||||
<empty list>
|
||||
PsiElement(record)('record')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(identifier)('A')
|
||||
Parameter list
|
||||
PsiElement(()('(')
|
||||
Parameter
|
||||
Modifiers
|
||||
<empty list>
|
||||
Built in type
|
||||
PsiElement(int)('int')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(identifier)('a')
|
||||
PsiElement(,)(',')
|
||||
PsiWhiteSpace(' ')
|
||||
Parameter
|
||||
Modifiers
|
||||
<empty list>
|
||||
Type element
|
||||
Reference element
|
||||
PsiElement(identifier)('String')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(identifier)('b')
|
||||
PsiElement())(')')
|
||||
PsiWhiteSpace(' ')
|
||||
Implements clause
|
||||
PsiElement(implements)('implements')
|
||||
PsiWhiteSpace(' ')
|
||||
Reference element
|
||||
PsiElement(identifier)('C')
|
||||
PsiWhiteSpace(' ')
|
||||
Type definition body
|
||||
PsiElement({)('{')
|
||||
PsiElement(})('}')
|
||||
21
plugins/groovy/testdata/parsing/groovy/types/record/record3.test
vendored
Normal file
21
plugins/groovy/testdata/parsing/groovy/types/record/record3.test
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
public final record A() {}
|
||||
-----
|
||||
Groovy script
|
||||
Class definition
|
||||
Modifiers
|
||||
PsiElement(public)('public')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(final)('final')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(record)('record')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(identifier)('A')
|
||||
Parameter list
|
||||
PsiElement(()('(')
|
||||
PsiElement())(')')
|
||||
Implements clause
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
Type definition body
|
||||
PsiElement({)('{')
|
||||
PsiElement(})('}')
|
||||
52
plugins/groovy/testdata/parsing/groovy/types/record/record4.test
vendored
Normal file
52
plugins/groovy/testdata/parsing/groovy/types/record/record4.test
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
class record {}
|
||||
def record() {}
|
||||
record record() {}
|
||||
-----
|
||||
Groovy script
|
||||
Class definition
|
||||
Modifiers
|
||||
<empty list>
|
||||
PsiElement(class)('class')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(record)('record')
|
||||
Extends clause
|
||||
<empty list>
|
||||
Implements clause
|
||||
<empty list>
|
||||
Permits clause
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
Type definition body
|
||||
PsiElement({)('{')
|
||||
PsiElement(})('}')
|
||||
PsiElement(new line)('\n')
|
||||
Method
|
||||
Modifiers
|
||||
PsiElement(def)('def')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(record)('record')
|
||||
Parameter list
|
||||
PsiElement(()('(')
|
||||
PsiElement())(')')
|
||||
Throw clause
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
Open block
|
||||
PsiElement({)('{')
|
||||
PsiElement(})('}')
|
||||
PsiElement(new line)('\n')
|
||||
Class definition
|
||||
Modifiers
|
||||
<empty list>
|
||||
PsiElement(record)('record')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(record)('record')
|
||||
Parameter list
|
||||
PsiElement(()('(')
|
||||
PsiElement())(')')
|
||||
Implements clause
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
Type definition body
|
||||
PsiElement({)('{')
|
||||
PsiElement(})('}')
|
||||
37
plugins/groovy/testdata/parsing/groovy/types/record/record5.test
vendored
Normal file
37
plugins/groovy/testdata/parsing/groovy/types/record/record5.test
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
record A() {
|
||||
A {
|
||||
|
||||
}
|
||||
}
|
||||
-----
|
||||
Groovy script
|
||||
Class definition
|
||||
Modifiers
|
||||
<empty list>
|
||||
PsiElement(record)('record')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(identifier)('A')
|
||||
Parameter list
|
||||
PsiElement(()('(')
|
||||
PsiElement())(')')
|
||||
Implements clause
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
Type definition body
|
||||
PsiElement({)('{')
|
||||
PsiWhiteSpace('\n ')
|
||||
Constructor
|
||||
Modifiers
|
||||
<empty list>
|
||||
PsiElement(identifier)('A')
|
||||
PsiWhiteSpace(' ')
|
||||
Parameter list
|
||||
<empty list>
|
||||
Throw clause
|
||||
<empty list>
|
||||
Open block
|
||||
PsiElement({)('{')
|
||||
PsiWhiteSpace('\n\n ')
|
||||
PsiElement(})('}')
|
||||
PsiElement(new line)('\n')
|
||||
PsiElement(})('}')
|
||||
42
plugins/groovy/testdata/parsing/groovy/types/record/record6.test
vendored
Normal file
42
plugins/groovy/testdata/parsing/groovy/types/record/record6.test
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
class A {
|
||||
A {
|
||||
|
||||
}
|
||||
}
|
||||
-----
|
||||
Groovy script
|
||||
Class definition
|
||||
Modifiers
|
||||
<empty list>
|
||||
PsiElement(class)('class')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(identifier)('A')
|
||||
Extends clause
|
||||
<empty list>
|
||||
Implements clause
|
||||
<empty list>
|
||||
Permits clause
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
Type definition body
|
||||
PsiElement({)('{')
|
||||
PsiWhiteSpace('\n ')
|
||||
Modifiers
|
||||
<empty list>
|
||||
PsiErrorElement:';', new line or '}' expected, got 'A'
|
||||
<empty list>
|
||||
Method call
|
||||
Reference expression
|
||||
PsiElement(identifier)('A')
|
||||
PsiWhiteSpace(' ')
|
||||
Arguments
|
||||
<empty list>
|
||||
Closable block
|
||||
PsiElement({)('{')
|
||||
PsiWhiteSpace('\n\n ')
|
||||
Parameter list
|
||||
<empty list>
|
||||
PsiElement(})('}')
|
||||
PsiElement(new line)('\n')
|
||||
PsiErrorElement:';', <statement> or new line expected, got '}'
|
||||
PsiElement(})('}')
|
||||
@@ -13,16 +13,19 @@ Groovy script
|
||||
PsiErrorElement:'{' expected, got 'permits'
|
||||
<empty list>
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(permits)('permits')
|
||||
PsiWhiteSpace(' ')
|
||||
Method call
|
||||
Call expression
|
||||
Reference expression
|
||||
PsiElement(identifier)('B')
|
||||
PsiElement(permits)('permits')
|
||||
PsiWhiteSpace(' ')
|
||||
Arguments
|
||||
<empty list>
|
||||
Closable block
|
||||
PsiElement({)('{')
|
||||
Parameter list
|
||||
<empty list>
|
||||
PsiElement(})('}')
|
||||
Command arguments
|
||||
Method call
|
||||
Reference expression
|
||||
PsiElement(identifier)('B')
|
||||
PsiWhiteSpace(' ')
|
||||
Arguments
|
||||
<empty list>
|
||||
Closable block
|
||||
PsiElement({)('{')
|
||||
Parameter list
|
||||
<empty list>
|
||||
PsiElement(})('}')
|
||||
Reference in New Issue
Block a user