Drop "extra visibility" from binary format

Descriptors of Kotlin symbols should always have a visibility known to Kotlin
This commit is contained in:
Alexander Udalov
2015-02-12 12:11:46 +03:00
parent 1609bbcd10
commit ce26ce0458
7 changed files with 373 additions and 1239 deletions
File diff suppressed because it is too large Load Diff
-3
View File
@@ -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
@@ -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) {
@@ -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")
}
}