Drop "extra visibility" from binary format
Descriptors of Kotlin symbols should always have a visibility known to Kotlin
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -175,7 +175,6 @@ message Class {
|
||||
is_inner
|
||||
*/
|
||||
optional int32 flags = 1 [default = 0 /*internal final class, no annotations*/];
|
||||
optional string extra_visibility = 2; // for things like java-specific visibilities
|
||||
|
||||
required int32 fq_name = 3;
|
||||
|
||||
@@ -240,7 +239,6 @@ message Callable {
|
||||
hasConstant
|
||||
*/
|
||||
optional int32 flags = 1;
|
||||
optional string extra_visibility = 2; // for things like java-specific visibilities
|
||||
|
||||
/*
|
||||
isNotDefault
|
||||
@@ -295,5 +293,4 @@ enum Visibility {
|
||||
PROTECTED = 0x02;
|
||||
PUBLIC = 0x03;
|
||||
PRIVATE_TO_THIS = 0x04;
|
||||
EXTRA = 0x05; // there's an extra field for the actual visibility
|
||||
}
|
||||
|
||||
@@ -83,8 +83,6 @@ public class DescriptorSerializer {
|
||||
classDescriptor.getModality(), classDescriptor.getKind(), classDescriptor.isInner());
|
||||
builder.setFlags(flags);
|
||||
|
||||
// TODO extra visibility
|
||||
|
||||
builder.setFqName(getClassId(classDescriptor));
|
||||
|
||||
for (TypeParameterDescriptor typeParameterDescriptor : classDescriptor.getTypeConstructor().getParameters()) {
|
||||
@@ -196,7 +194,6 @@ public class DescriptorSerializer {
|
||||
hasSetter,
|
||||
hasConstant
|
||||
));
|
||||
//TODO builder.setExtraVisibility()
|
||||
|
||||
for (TypeParameterDescriptor typeParameterDescriptor : descriptor.getTypeParameters()) {
|
||||
builder.addTypeParameter(local.typeParameter(typeParameterDescriptor));
|
||||
|
||||
@@ -154,7 +154,7 @@ public class Flags {
|
||||
else if (visibility == Visibilities.PROTECTED) {
|
||||
return ProtoBuf.Visibility.PROTECTED;
|
||||
}
|
||||
return ProtoBuf.Visibility.EXTRA;
|
||||
throw new IllegalArgumentException("Unknown visibility: " + visibility);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
-1
@@ -43,7 +43,6 @@ fun visibility(visibility: ProtoBuf.Visibility) = when (visibility) {
|
||||
ProtoBuf.Visibility.PRIVATE_TO_THIS -> Visibilities.PRIVATE_TO_THIS
|
||||
ProtoBuf.Visibility.PROTECTED -> Visibilities.PROTECTED
|
||||
ProtoBuf.Visibility.PUBLIC -> Visibilities.PUBLIC
|
||||
ProtoBuf.Visibility.EXTRA -> throw UnsupportedOperationException("Extra visibilities are not supported yet")
|
||||
}
|
||||
|
||||
public fun classKind(kind: ProtoBuf.Class.Kind): ClassKind = when (kind) {
|
||||
|
||||
+1
-8
@@ -17,27 +17,21 @@
|
||||
package org.jetbrains.kotlin.idea.decompiler.stubBuilder
|
||||
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.KotlinFileStubImpl
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.KotlinPlaceHolderStubImpl
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.*
|
||||
import org.jetbrains.kotlin.psi.JetPackageDirective
|
||||
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
|
||||
import com.intellij.psi.stubs.StubElement
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.KotlinNameReferenceExpressionStubImpl
|
||||
import org.jetbrains.kotlin.psi.JetDotQualifiedExpression
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub
|
||||
import org.jetbrains.kotlin.name.SpecialNames
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.KotlinUserTypeStubImpl
|
||||
import org.jetbrains.kotlin.lexer.JetModifierKeywordToken
|
||||
import org.jetbrains.kotlin.serialization.Flags
|
||||
import org.jetbrains.kotlin.lexer.JetTokens
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.KotlinModifierListStubImpl
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.ModifierMaskUtils
|
||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||
import com.intellij.util.io.StringRef
|
||||
import org.jetbrains.kotlin.serialization.deserialization.ProtoContainer
|
||||
import org.jetbrains.kotlin.psi.stubs.impl.KotlinAnnotationEntryStubImpl
|
||||
import org.jetbrains.kotlin.psi.JetConstructorCalleeExpression
|
||||
import org.jetbrains.kotlin.psi.JetTypeReference
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -134,7 +128,6 @@ enum class FlagsToModifiers {
|
||||
ProtoBuf.Visibility.INTERNAL -> JetTokens.INTERNAL_KEYWORD
|
||||
ProtoBuf.Visibility.PROTECTED -> JetTokens.PROTECTED_KEYWORD
|
||||
ProtoBuf.Visibility.PUBLIC -> JetTokens.PUBLIC_KEYWORD
|
||||
//TODO: support extra visibility
|
||||
else -> throw IllegalStateException("Unexpected visibility: $visibility")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user