Since '@A R.() -> T' is now parsed as '@A (R.() -> T)',
receiver type with modifiers or annotations should be surrounded in parentheses on rendering: '(@A R).() -> T' This also fixes stub builder tests (which check that stubs are consistent with rendered descriptors).
This commit is contained in:
committed by
Stanislav Erokhin
parent
6e1340da82
commit
cf4fb1eb25
+1
-1
@@ -1,7 +1,7 @@
|
||||
package
|
||||
|
||||
public val inVal: (x: kotlin.Int) -> kotlin.Unit
|
||||
public val onType: @TypeAnn A.(a: @TypeAnn A, A) -> @TypeAnn A?
|
||||
public val onType: (@TypeAnn A).(a: @TypeAnn A, A) -> @TypeAnn A?
|
||||
public fun f(/*0*/ @Ann x: kotlin.Int): kotlin.Unit
|
||||
public fun inParam(/*0*/ fn: (x: kotlin.Int) -> kotlin.Unit): kotlin.Unit
|
||||
public fun inParamNested(/*0*/ fn1: (fn2: (n: kotlin.Int) -> kotlin.Unit) -> kotlin.Unit): kotlin.Unit
|
||||
|
||||
Vendored
+1
-1
@@ -1,6 +1,6 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: @Ann B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar(/*0*/ x: (@Ann B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun @Ann A.test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
+6
-6
@@ -1,11 +1,11 @@
|
||||
package
|
||||
|
||||
public fun bar1(/*0*/ x: @L1 B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun </*0*/ T> bar1t(/*0*/ q: T, /*1*/ x: @L1 T.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar2(/*0*/ x: @L2 B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo1(/*0*/ x: @L1 A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo12(/*0*/ x: @L1 @L2 A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo2(/*0*/ x: @L2 A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar1(/*0*/ x: (@L1 B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun </*0*/ T> bar1t(/*0*/ q: T, /*1*/ x: (@L1 T).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar2(/*0*/ x: (@L2 B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo1(/*0*/ x: (@L1 A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo12(/*0*/ x: (@L1 @L2 A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo2(/*0*/ x: (@L2 A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: @Ann B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: @Ann A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar(/*0*/ x: (@Ann B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: (@Ann A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: @Ann B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: @Ann A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar(/*0*/ x: (@Ann B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: (@Ann A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
package
|
||||
|
||||
public fun </*0*/ E> bar(/*0*/ x: @Ann E.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun </*0*/ T> foo(/*0*/ x: @Ann T.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun </*0*/ E> bar(/*0*/ x: (@Ann E).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun </*0*/ T> foo(/*0*/ x: (@Ann T).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
+6
-6
@@ -1,11 +1,11 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: @Ann2 B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun baz(/*0*/ x: @Ann3 C.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: @Ann1 A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo1(/*0*/ x: @Ann1 D.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo2(/*0*/ x: @Ann2 D.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo3(/*0*/ x: @Ann3 D.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar(/*0*/ x: (@Ann2 B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun baz(/*0*/ x: (@Ann3 C).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: (@Ann1 A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo1(/*0*/ x: (@Ann1 D).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo2(/*0*/ x: (@Ann2 D).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo3(/*0*/ x: (@Ann3 D).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
+6
-6
@@ -1,11 +1,11 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: @Ann2 B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun baz(/*0*/ x: @Ann3 C.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: @Ann1 A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo1(/*0*/ x: @Ann1 D.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo2(/*0*/ x: @Ann2 D.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo3(/*0*/ x: @Ann3 D.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar(/*0*/ x: (@Ann2 B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun baz(/*0*/ x: (@Ann3 C).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: (@Ann1 A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo1(/*0*/ x: (@Ann1 D).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo2(/*0*/ x: (@Ann2 D).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo3(/*0*/ x: (@Ann3 D).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: @Ann2 B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun baz(/*0*/ x: @Ann1 D.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: @Ann1 A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar(/*0*/ x: (@Ann2 B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun baz(/*0*/ x: (@Ann1 D).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: (@Ann1 A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package
|
||||
|
||||
public fun bar1(/*0*/ x: @L1 B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar2(/*0*/ x: @L2 B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo1(/*0*/ x: @L1 A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo2(/*0*/ x: @L2 A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar1(/*0*/ x: (@L1 B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar2(/*0*/ x: (@L2 B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo1(/*0*/ x: (@L1 A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo2(/*0*/ x: (@L2 A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package
|
||||
|
||||
public fun bar(/*0*/ x: @Ann B.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: @Ann A.() -> kotlin.Unit): kotlin.Unit
|
||||
public fun bar(/*0*/ x: (@Ann B).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun foo(/*0*/ x: (@Ann A).() -> kotlin.Unit): kotlin.Unit
|
||||
public fun test(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
|
||||
+2
@@ -2,7 +2,9 @@ val p1: suspend a
|
||||
val p2: suspend (a) -> a
|
||||
val p3: suspend (a) -> suspend a
|
||||
val p4: suspend a.() -> a
|
||||
val p4a: @a a.() -> a
|
||||
val p5: (suspend a).() -> a
|
||||
val p5a: (@a a).() -> a
|
||||
val p6: a<in suspend a>
|
||||
val p7: a<out suspend @a a>
|
||||
val p8: a<out @a suspend @a a>
|
||||
|
||||
+70
@@ -102,6 +102,40 @@ JetFile: TypeModifiers.kt
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
PsiWhiteSpace('\n')
|
||||
PROPERTY
|
||||
PsiElement(val)('val')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(IDENTIFIER)('p4a')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
MODIFIER_LIST
|
||||
ANNOTATION_ENTRY
|
||||
PsiElement(AT)('@')
|
||||
CONSTRUCTOR_CALLEE
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
PsiWhiteSpace(' ')
|
||||
FUNCTION_TYPE
|
||||
FUNCTION_TYPE_RECEIVER
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
PsiElement(DOT)('.')
|
||||
VALUE_PARAMETER_LIST
|
||||
PsiElement(LPAR)('(')
|
||||
PsiElement(RPAR)(')')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(ARROW)('->')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
PsiWhiteSpace('\n')
|
||||
PROPERTY
|
||||
PsiElement(val)('val')
|
||||
PsiWhiteSpace(' ')
|
||||
@@ -132,6 +166,42 @@ JetFile: TypeModifiers.kt
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
PsiWhiteSpace('\n')
|
||||
PROPERTY
|
||||
PsiElement(val)('val')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(IDENTIFIER)('p5a')
|
||||
PsiElement(COLON)(':')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
FUNCTION_TYPE
|
||||
FUNCTION_TYPE_RECEIVER
|
||||
TYPE_REFERENCE
|
||||
PsiElement(LPAR)('(')
|
||||
MODIFIER_LIST
|
||||
ANNOTATION_ENTRY
|
||||
PsiElement(AT)('@')
|
||||
CONSTRUCTOR_CALLEE
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
PsiWhiteSpace(' ')
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
PsiElement(RPAR)(')')
|
||||
PsiElement(DOT)('.')
|
||||
VALUE_PARAMETER_LIST
|
||||
PsiElement(LPAR)('(')
|
||||
PsiElement(RPAR)(')')
|
||||
PsiWhiteSpace(' ')
|
||||
PsiElement(ARROW)('->')
|
||||
PsiWhiteSpace(' ')
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION
|
||||
PsiElement(IDENTIFIER)('a')
|
||||
PsiWhiteSpace('\n')
|
||||
PROPERTY
|
||||
PsiElement(val)('val')
|
||||
PsiWhiteSpace(' ')
|
||||
|
||||
@@ -327,7 +327,8 @@ internal class DescriptorRendererImpl(
|
||||
}
|
||||
|
||||
if (receiverType != null) {
|
||||
val surroundReceiver = shouldRenderAsPrettyFunctionType(receiverType) && !receiverType.isMarkedNullable
|
||||
val surroundReceiver = shouldRenderAsPrettyFunctionType(receiverType) && !receiverType.isMarkedNullable ||
|
||||
receiverType.hasModifiersOrAnnotations()
|
||||
if (surroundReceiver) {
|
||||
append("(")
|
||||
}
|
||||
@@ -361,6 +362,8 @@ internal class DescriptorRendererImpl(
|
||||
if (isNullable) append("?")
|
||||
}
|
||||
|
||||
private fun KotlinType.hasModifiersOrAnnotations() =
|
||||
isSuspendFunctionType || !annotations.isEmpty()
|
||||
|
||||
/* METHODS FOR ALL KINDS OF DESCRIPTORS */
|
||||
private fun StringBuilder.appendDefinedIn(descriptor: DeclarationDescriptor) {
|
||||
|
||||
-1
@@ -95,7 +95,6 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) {
|
||||
val (extensionAnnotations, notExtensionAnnotations) =
|
||||
annotations.partition { it.asSingleFqName() == KotlinBuiltIns.FQ_NAMES.extensionFunctionType }
|
||||
|
||||
|
||||
createTypeAnnotationStubs(parent, type, notExtensionAnnotations)
|
||||
|
||||
val isExtension = extensionAnnotations.isNotEmpty()
|
||||
|
||||
Vendored
+3
-1
@@ -17,7 +17,9 @@ public class AnnotationsOnNullableTypes {
|
||||
|
||||
val lambdaReturnValue: () -> @A C? = null!!
|
||||
|
||||
val lambdaReceiver: @A C?.() -> C = null!!
|
||||
val lambdaReceiver: (@A C?).() -> C = null!!
|
||||
|
||||
val lambdaTypeWithNullableReceiver: @A C?.() -> C = null!!
|
||||
}
|
||||
|
||||
@Target(AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER)
|
||||
|
||||
Vendored
+25
-6
@@ -23,15 +23,15 @@ PsiJetFileStubImpl[package=]
|
||||
PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaReceiver, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaReceiver]
|
||||
MODIFIER_LIST[public final]
|
||||
TYPE_REFERENCE
|
||||
MODIFIER_LIST[]
|
||||
ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
|
||||
CONSTRUCTOR_CALLEE
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=A]
|
||||
FUNCTION_TYPE
|
||||
FUNCTION_TYPE_RECEIVER
|
||||
TYPE_REFERENCE
|
||||
MODIFIER_LIST[]
|
||||
ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
|
||||
CONSTRUCTOR_CALLEE
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=A]
|
||||
NULLABLE_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=C]
|
||||
@@ -69,6 +69,25 @@ PsiJetFileStubImpl[package=]
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=C]
|
||||
PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaTypeWithNullableReceiver, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaTypeWithNullableReceiver]
|
||||
MODIFIER_LIST[public final]
|
||||
TYPE_REFERENCE
|
||||
MODIFIER_LIST[]
|
||||
ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
|
||||
CONSTRUCTOR_CALLEE
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=A]
|
||||
FUNCTION_TYPE
|
||||
FUNCTION_TYPE_RECEIVER
|
||||
TYPE_REFERENCE
|
||||
NULLABLE_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=C]
|
||||
VALUE_PARAMETER_LIST
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=C]
|
||||
FUN[fqName=AnnotationsOnNullableTypes.parameter, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, name=parameter]
|
||||
MODIFIER_LIST[public final]
|
||||
VALUE_PARAMETER_LIST
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
public class TypeModifiers {
|
||||
val suspendFunction: suspend () -> Unit = null!!
|
||||
|
||||
val suspendExtFunction: suspend Any.() -> Unit = null!!
|
||||
|
||||
val functionOnSuspendFunction: (suspend () -> Unit).() -> Unit = null!!
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
PsiJetFileStubImpl[package=]
|
||||
PACKAGE_DIRECTIVE
|
||||
IMPORT_LIST
|
||||
CLASS[fqName=TypeModifiers, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=TypeModifiers, superNames=[]]
|
||||
MODIFIER_LIST[public final]
|
||||
PRIMARY_CONSTRUCTOR
|
||||
MODIFIER_LIST[public]
|
||||
VALUE_PARAMETER_LIST
|
||||
CLASS_BODY
|
||||
PROPERTY[fqName=TypeModifiers.functionOnSuspendFunction, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=functionOnSuspendFunction]
|
||||
MODIFIER_LIST[public final]
|
||||
TYPE_REFERENCE
|
||||
FUNCTION_TYPE
|
||||
FUNCTION_TYPE_RECEIVER
|
||||
TYPE_REFERENCE
|
||||
FUNCTION_TYPE
|
||||
VALUE_PARAMETER_LIST
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION[referencedName=Unit]
|
||||
VALUE_PARAMETER_LIST
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION[referencedName=Unit]
|
||||
PROPERTY[fqName=TypeModifiers.suspendExtFunction, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=suspendExtFunction]
|
||||
MODIFIER_LIST[public final]
|
||||
TYPE_REFERENCE
|
||||
FUNCTION_TYPE
|
||||
FUNCTION_TYPE_RECEIVER
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION[referencedName=Any]
|
||||
VALUE_PARAMETER_LIST
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION[referencedName=Unit]
|
||||
PROPERTY[fqName=TypeModifiers.suspendFunction, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=suspendFunction]
|
||||
MODIFIER_LIST[public final]
|
||||
TYPE_REFERENCE
|
||||
FUNCTION_TYPE
|
||||
VALUE_PARAMETER_LIST
|
||||
TYPE_REFERENCE
|
||||
USER_TYPE
|
||||
USER_TYPE
|
||||
REFERENCE_EXPRESSION[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION[referencedName=Unit]
|
||||
+6
@@ -198,6 +198,12 @@ public class ClsStubBuilderTestGenerated extends AbstractClsStubBuilderTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeModifiers")
|
||||
public void testTypeModifiers() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/decompiler/stubBuilder/TypeModifiers/");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeParams")
|
||||
public void testTypeParams() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/decompiler/stubBuilder/TypeParams/");
|
||||
|
||||
Reference in New Issue
Block a user