Using isTopLevelDeclaration instaed of a direct instanceof check
This commit is contained in:
@@ -31,6 +31,7 @@ import org.jetbrains.jet.codegen.state.GenerationState;
|
|||||||
import org.jetbrains.jet.codegen.state.JetTypeMapper;
|
import org.jetbrains.jet.codegen.state.JetTypeMapper;
|
||||||
import org.jetbrains.jet.lang.descriptors.*;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||||
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||||
@@ -191,7 +192,7 @@ public class AsmUtil {
|
|||||||
Classes in byte code should be public or package private
|
Classes in byte code should be public or package private
|
||||||
*/
|
*/
|
||||||
public static int getVisibilityAccessFlagForClass(ClassDescriptor descriptor) {
|
public static int getVisibilityAccessFlagForClass(ClassDescriptor descriptor) {
|
||||||
if (descriptor.getContainingDeclaration() instanceof NamespaceDescriptor ||
|
if (DescriptorUtils.isTopLevelDeclaration(descriptor) ||
|
||||||
descriptor.getVisibility() == Visibilities.PUBLIC ||
|
descriptor.getVisibility() == Visibilities.PUBLIC ||
|
||||||
descriptor.getVisibility() == Visibilities.INTERNAL) {
|
descriptor.getVisibility() == Visibilities.INTERNAL) {
|
||||||
return ACC_PUBLIC;
|
return ACC_PUBLIC;
|
||||||
|
|||||||
+3
-2
@@ -22,6 +22,7 @@ import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
|||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
|
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
|
||||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||||
@@ -196,8 +197,8 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
|
|||||||
|
|
||||||
private String getName(ClassDescriptor classDescriptor) {
|
private String getName(ClassDescriptor classDescriptor) {
|
||||||
String base = peekFromStack(nameStack);
|
String base = peekFromStack(nameStack);
|
||||||
return classDescriptor.getContainingDeclaration() instanceof NamespaceDescriptor ? base.isEmpty() ? classDescriptor.getName()
|
return DescriptorUtils.isTopLevelDeclaration(classDescriptor) ? base.isEmpty() ? classDescriptor.getName()
|
||||||
.getName() : base + '/' + classDescriptor.getName() : base + '$' + classDescriptor.getName();
|
.getName() : base + '/' + classDescriptor.getName() : base + '$' + classDescriptor.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -231,11 +231,6 @@ public class DescriptorUtils {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isTopLevelNamespace(@NotNull NamespaceDescriptor namespaceDescriptor) {
|
|
||||||
return namespaceDescriptor.getContainingDeclaration() instanceof NamespaceDescriptor
|
|
||||||
&& namespaceDescriptor.getContainingDeclaration().getContainingDeclaration() instanceof ModuleDescriptor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isRootNamespace(@NotNull NamespaceDescriptor namespaceDescriptor) {
|
public static boolean isRootNamespace(@NotNull NamespaceDescriptor namespaceDescriptor) {
|
||||||
return namespaceDescriptor.getContainingDeclaration() instanceof ModuleDescriptor;
|
return namespaceDescriptor.getContainingDeclaration() instanceof ModuleDescriptor;
|
||||||
}
|
}
|
||||||
@@ -400,7 +395,7 @@ public class DescriptorUtils {
|
|||||||
|
|
||||||
public static boolean isExternallyAccessible(PropertyDescriptor propertyDescriptor) {
|
public static boolean isExternallyAccessible(PropertyDescriptor propertyDescriptor) {
|
||||||
return propertyDescriptor.getVisibility() != Visibilities.PRIVATE || isClassObject(propertyDescriptor.getContainingDeclaration())
|
return propertyDescriptor.getVisibility() != Visibilities.PRIVATE || isClassObject(propertyDescriptor.getContainingDeclaration())
|
||||||
|| propertyDescriptor.getContainingDeclaration() instanceof NamespaceDescriptor;
|
|| isTopLevelDeclaration(propertyDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -333,7 +333,7 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void renderModalityForCallable(@NotNull CallableMemberDescriptor callable, @NotNull StringBuilder builder) {
|
private void renderModalityForCallable(@NotNull CallableMemberDescriptor callable, @NotNull StringBuilder builder) {
|
||||||
if (!(callable.getContainingDeclaration() instanceof NamespaceDescriptor) || callable.getModality() != Modality.FINAL) {
|
if (!DescriptorUtils.isTopLevelDeclaration(callable) || callable.getModality() != Modality.FINAL) {
|
||||||
renderModality(callable.getModality(), builder);
|
renderModality(callable.getModality(), builder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import com.intellij.psi.PsiElement;
|
|||||||
import org.jetbrains.jet.lang.descriptors.*;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
|
|
||||||
public class FunctionsHighlightingVisitor extends AfterAnalysisHighlightingVisitor {
|
public class FunctionsHighlightingVisitor extends AfterAnalysisHighlightingVisitor {
|
||||||
public FunctionsHighlightingVisitor(AnnotationHolder holder, BindingContext bindingContext) {
|
public FunctionsHighlightingVisitor(AnnotationHolder holder, BindingContext bindingContext) {
|
||||||
@@ -65,7 +66,7 @@ public class FunctionsHighlightingVisitor extends AfterAnalysisHighlightingVisit
|
|||||||
else if (calleeDescriptor instanceof FunctionDescriptor) {
|
else if (calleeDescriptor instanceof FunctionDescriptor) {
|
||||||
FunctionDescriptor fun = (FunctionDescriptor)calleeDescriptor;
|
FunctionDescriptor fun = (FunctionDescriptor)calleeDescriptor;
|
||||||
JetPsiChecker.highlightName(holder, callee, JetHighlightingColors.FUNCTION_CALL);
|
JetPsiChecker.highlightName(holder, callee, JetHighlightingColors.FUNCTION_CALL);
|
||||||
if (fun.getContainingDeclaration() instanceof NamespaceDescriptor) {
|
if (DescriptorUtils.isTopLevelDeclaration(fun)) {
|
||||||
JetPsiChecker.highlightName(holder, callee, JetHighlightingColors.NAMESPACE_FUNCTION_CALL);
|
JetPsiChecker.highlightName(holder, callee, JetHighlightingColors.NAMESPACE_FUNCTION_CALL);
|
||||||
}
|
}
|
||||||
if (fun.getReceiverParameter() != null) {
|
if (fun.getReceiverParameter() != null) {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import org.jetbrains.jet.lang.psi.JetProperty;
|
|||||||
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
|
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
|
||||||
import org.jetbrains.jet.lang.psi.JetThisExpression;
|
import org.jetbrains.jet.lang.psi.JetThisExpression;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
|
||||||
class PropertiesHighlightingVisitor extends AfterAnalysisHighlightingVisitor {
|
class PropertiesHighlightingVisitor extends AfterAnalysisHighlightingVisitor {
|
||||||
@@ -77,7 +78,7 @@ class PropertiesHighlightingVisitor extends AfterAnalysisHighlightingVisitor {
|
|||||||
private void highlightProperty(@NotNull PsiElement elementToHighlight,
|
private void highlightProperty(@NotNull PsiElement elementToHighlight,
|
||||||
@NotNull PropertyDescriptor descriptor,
|
@NotNull PropertyDescriptor descriptor,
|
||||||
boolean withBackingField) {
|
boolean withBackingField) {
|
||||||
boolean namespace = descriptor.getContainingDeclaration() instanceof NamespaceDescriptor;
|
boolean namespace = DescriptorUtils.isTopLevelDeclaration(descriptor);
|
||||||
JetPsiChecker.highlightName(holder, elementToHighlight,
|
JetPsiChecker.highlightName(holder, elementToHighlight,
|
||||||
namespace ? JetHighlightingColors.NAMESPACE_PROPERTY : JetHighlightingColors.INSTANCE_PROPERTY
|
namespace ? JetHighlightingColors.NAMESPACE_PROPERTY : JetHighlightingColors.INSTANCE_PROPERTY
|
||||||
);
|
);
|
||||||
|
|||||||
+2
-1
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.JetFile;
|
import org.jetbrains.jet.lang.psi.JetFile;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.k2js.translate.context.Namer;
|
import org.jetbrains.k2js.translate.context.Namer;
|
||||||
import org.jetbrains.k2js.translate.context.TranslationContext;
|
import org.jetbrains.k2js.translate.context.TranslationContext;
|
||||||
import org.jetbrains.k2js.translate.general.AbstractTranslator;
|
import org.jetbrains.k2js.translate.general.AbstractTranslator;
|
||||||
@@ -96,7 +97,7 @@ public final class NamespaceDeclarationTranslator extends AbstractTranslator {
|
|||||||
private JsObjectLiteral getRootPackage(Map<NamespaceDescriptor, List<JsExpression>> descriptorToDefineInvocation,
|
private JsObjectLiteral getRootPackage(Map<NamespaceDescriptor, List<JsExpression>> descriptorToDefineInvocation,
|
||||||
NamespaceDescriptor descriptor) {
|
NamespaceDescriptor descriptor) {
|
||||||
NamespaceDescriptor rootNamespace = descriptor;
|
NamespaceDescriptor rootNamespace = descriptor;
|
||||||
while (rootNamespace.getContainingDeclaration() instanceof NamespaceDescriptor) {
|
while (DescriptorUtils.isTopLevelDeclaration(rootNamespace)) {
|
||||||
rootNamespace = (NamespaceDescriptor) rootNamespace.getContainingDeclaration();
|
rootNamespace = (NamespaceDescriptor) rootNamespace.getContainingDeclaration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -21,9 +21,9 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||||
import org.jetbrains.jet.lang.psi.JetFunctionLiteralExpression;
|
import org.jetbrains.jet.lang.psi.JetFunctionLiteralExpression;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||||
import org.jetbrains.k2js.translate.LabelGenerator;
|
import org.jetbrains.k2js.translate.LabelGenerator;
|
||||||
import org.jetbrains.k2js.translate.context.Namer;
|
import org.jetbrains.k2js.translate.context.Namer;
|
||||||
import org.jetbrains.k2js.translate.context.TraceableThisAliasProvider;
|
import org.jetbrains.k2js.translate.context.TraceableThisAliasProvider;
|
||||||
@@ -71,7 +71,7 @@ public class LiteralFunctionTranslator {
|
|||||||
funContext = createThisTraceableContext(classDescriptor, fun, new JsNameRef("o", fun.getName().makeRef()));
|
funContext = createThisTraceableContext(classDescriptor, fun, new JsNameRef("o", fun.getName().makeRef()));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
asInner = descriptor.getContainingDeclaration() instanceof NamespaceDescriptor;
|
asInner = DescriptorUtils.isTopLevelDeclaration(descriptor);
|
||||||
funContext = rootContext.contextWithScope(fun);
|
funContext = rootContext.contextWithScope(fun);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user