From 69ec78901377847ad8c39e5baacfc3c6dbdeea3b Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Mon, 22 Dec 2014 15:35:16 +0300 Subject: [PATCH] Support PRIVATE_TO_THIS in cls stub builder --- .../decompiler/stubBuilder/clsStubBuilding.kt | 2 +- .../PrivateToThis/PrivateToThis.kt | 15 ++++++++ .../PrivateToThis/PrivateToThis.txt | 36 +++++++++++++++++++ .../ClsStubBuilderTestGenerated.java | 6 ++++ 4 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 idea/testData/decompiler/stubBuilder/PrivateToThis/PrivateToThis.kt create mode 100644 idea/testData/decompiler/stubBuilder/PrivateToThis/PrivateToThis.txt diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/stubBuilder/clsStubBuilding.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/stubBuilder/clsStubBuilding.kt index e3fd2a55536..6a17a30cf72 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/stubBuilder/clsStubBuilding.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/stubBuilder/clsStubBuilding.kt @@ -132,7 +132,7 @@ enum class FlagsToModifiers { override fun getModifiers(flags: Int): JetModifierKeywordToken? { val visibility = Flags.VISIBILITY.get(flags) return when (visibility) { - ProtoBuf.Visibility.PRIVATE -> JetTokens.PRIVATE_KEYWORD + ProtoBuf.Visibility.PRIVATE, ProtoBuf.Visibility.PRIVATE_TO_THIS -> JetTokens.PRIVATE_KEYWORD ProtoBuf.Visibility.INTERNAL -> JetTokens.INTERNAL_KEYWORD ProtoBuf.Visibility.PROTECTED -> JetTokens.PROTECTED_KEYWORD ProtoBuf.Visibility.PUBLIC -> JetTokens.PUBLIC_KEYWORD diff --git a/idea/testData/decompiler/stubBuilder/PrivateToThis/PrivateToThis.kt b/idea/testData/decompiler/stubBuilder/PrivateToThis/PrivateToThis.kt new file mode 100644 index 00000000000..f5afeb33273 --- /dev/null +++ b/idea/testData/decompiler/stubBuilder/PrivateToThis/PrivateToThis.kt @@ -0,0 +1,15 @@ +package p + +class PrivateToThis { + private val foo: I = null!! + private var bar: I = null!! + + private val val_with_accessors: I + get() = null!! + + private var var_with_accessors: I + get() = null!! + set(value: I) {} + + private fun bas(): I = null!! +} \ No newline at end of file diff --git a/idea/testData/decompiler/stubBuilder/PrivateToThis/PrivateToThis.txt b/idea/testData/decompiler/stubBuilder/PrivateToThis/PrivateToThis.txt new file mode 100644 index 00000000000..b35aa4f9b34 --- /dev/null +++ b/idea/testData/decompiler/stubBuilder/PrivateToThis/PrivateToThis.txt @@ -0,0 +1,36 @@ +PsiJetFileStubImpl[package=p] + PACKAGE_DIRECTIVE: + REFERENCE_EXPRESSION:[referencedName=p] + CLASS:[fqName=p.PrivateToThis, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=PrivateToThis, superNames=[]] + MODIFIER_LIST:[internal final] + TYPE_PARAMETER_LIST: + TYPE_PARAMETER:[fqName=null, isInVariance=true, isOutVariance=false, name=I] + MODIFIER_LIST:[in] + VALUE_PARAMETER_LIST: + CLASS_BODY: + PROPERTY:[fqName=p.PrivateToThis.bar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=true, name=bar] + MODIFIER_LIST:[private final] + TYPE_REFERENCE: + USER_TYPE:[isAbsoluteInRootPackage=false] + REFERENCE_EXPRESSION:[referencedName=I] + PROPERTY:[fqName=p.PrivateToThis.foo, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=foo] + MODIFIER_LIST:[private final] + TYPE_REFERENCE: + USER_TYPE:[isAbsoluteInRootPackage=false] + REFERENCE_EXPRESSION:[referencedName=I] + PROPERTY:[fqName=p.PrivateToThis.val_with_accessors, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=val_with_accessors] + MODIFIER_LIST:[private final] + TYPE_REFERENCE: + USER_TYPE:[isAbsoluteInRootPackage=false] + REFERENCE_EXPRESSION:[referencedName=I] + PROPERTY:[fqName=p.PrivateToThis.var_with_accessors, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=true, name=var_with_accessors] + MODIFIER_LIST:[private final] + TYPE_REFERENCE: + USER_TYPE:[isAbsoluteInRootPackage=false] + REFERENCE_EXPRESSION:[referencedName=I] + FUN:[fqName=p.PrivateToThis.bas, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isProbablyNothingType=false, isTopLevel=false, name=bas] + MODIFIER_LIST:[private final] + VALUE_PARAMETER_LIST: + TYPE_REFERENCE: + USER_TYPE:[isAbsoluteInRootPackage=false] + REFERENCE_EXPRESSION:[referencedName=I] diff --git a/idea/tests/org/jetbrains/jet/plugin/decompiler/stubBuilder/ClsStubBuilderTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/decompiler/stubBuilder/ClsStubBuilderTestGenerated.java index 4782ec56192..ec27e051e29 100644 --- a/idea/tests/org/jetbrains/jet/plugin/decompiler/stubBuilder/ClsStubBuilderTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/decompiler/stubBuilder/ClsStubBuilderTestGenerated.java @@ -108,6 +108,12 @@ public class ClsStubBuilderTestGenerated extends AbstractClsStubBuilderTest { doTest(fileName); } + @TestMetadata("PrivateToThis") + public void testPrivateToThis() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/decompiler/stubBuilder/PrivateToThis/"); + doTest(fileName); + } + @TestMetadata("TopLevelMembersAnnotatedPackage") public void testTopLevelMembersAnnotatedPackage() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/decompiler/stubBuilder/TopLevelMembersAnnotatedPackage/");