KT-1036 JetFile -> PsiJavaFile cast problem
This commit is contained in:
@@ -79,8 +79,6 @@ public class TypeHierarchyResolver {
|
|||||||
namespaceScope.changeLockLevel(WritableScope.LockLevel.BOTH);
|
namespaceScope.changeLockLevel(WritableScope.LockLevel.BOTH);
|
||||||
context.getNamespaceScopes().put(file, namespaceScope);
|
context.getNamespaceScopes().put(file, namespaceScope);
|
||||||
|
|
||||||
// processImports(namespace, namespaceScope, outerScope);
|
|
||||||
|
|
||||||
collectNamespacesAndClassifiers(namespaceScope, namespaceScope, namespaceDescriptor, file.getDeclarations());
|
collectNamespacesAndClassifiers(namespaceScope, namespaceScope, namespaceDescriptor, file.getDeclarations());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -99,17 +97,16 @@ public class TypeHierarchyResolver {
|
|||||||
createPrimaryConstructorForObject(null, classObjectDescriptor);
|
createPrimaryConstructorForObject(null, classObjectDescriptor);
|
||||||
mutableClassDescriptor.setClassObjectDescriptor(classObjectDescriptor);
|
mutableClassDescriptor.setClassObjectDescriptor(classObjectDescriptor);
|
||||||
}
|
}
|
||||||
visitClassOrObject(
|
|
||||||
klass,
|
visitClassOrObject(klass, (Map) context.getClasses(), mutableClassDescriptor);
|
||||||
(Map) context.getClasses(),
|
|
||||||
mutableClassDescriptor
|
|
||||||
);
|
|
||||||
owner.addClassifierDescriptor(mutableClassDescriptor);
|
owner.addClassifierDescriptor(mutableClassDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visitObjectDeclaration(JetObjectDeclaration declaration) {
|
public void visitObjectDeclaration(JetObjectDeclaration declaration) {
|
||||||
createClassDescriptorForObject(declaration, owner, outerScope);
|
final MutableClassDescriptor objectDescriptor = createClassDescriptorForObject(declaration, owner, outerScope);
|
||||||
|
context.getTrace().record(FQNAME_TO_CLASS_DESCRIPTOR, JetPsiUtil.getFQName(declaration), objectDescriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -122,7 +119,8 @@ public class TypeHierarchyResolver {
|
|||||||
context.getClasses().put(enumEntry, classDescriptor);
|
context.getClasses().put(enumEntry, classDescriptor);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(context.getTrace(), classObjectDescriptor, outerScope, ClassKind.CLASS); // TODO : Special kind for enum entry classes?
|
// TODO : Special kind for enum entry classes?
|
||||||
|
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(context.getTrace(), classObjectDescriptor, outerScope, ClassKind.CLASS);
|
||||||
visitClassOrObject(
|
visitClassOrObject(
|
||||||
enumEntry,
|
enumEntry,
|
||||||
(Map) context.getClasses(),
|
(Map) context.getClasses(),
|
||||||
@@ -132,13 +130,15 @@ public class TypeHierarchyResolver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private MutableClassDescriptor createClassDescriptorForObject(@NotNull JetClassOrObject declaration, @NotNull NamespaceLike owner, JetScope scope) {
|
private MutableClassDescriptor createClassDescriptorForObject(@NotNull JetClassOrObject declaration,
|
||||||
|
@NotNull NamespaceLike owner, JetScope scope) {
|
||||||
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(context.getTrace(), owner, scope, ClassKind.OBJECT) {
|
MutableClassDescriptor mutableClassDescriptor = new MutableClassDescriptor(context.getTrace(), owner, scope, ClassKind.OBJECT) {
|
||||||
@Override
|
@Override
|
||||||
public ClassObjectStatus setClassObjectDescriptor(@NotNull MutableClassDescriptor classObjectDescriptor) {
|
public ClassObjectStatus setClassObjectDescriptor(@NotNull MutableClassDescriptor classObjectDescriptor) {
|
||||||
return ClassObjectStatus.NOT_ALLOWED;
|
return ClassObjectStatus.NOT_ALLOWED;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
visitClassOrObject(declaration, (Map) context.getObjects(), mutableClassDescriptor);
|
visitClassOrObject(declaration, (Map) context.getObjects(), mutableClassDescriptor);
|
||||||
createPrimaryConstructorForObject((JetDeclaration) declaration, mutableClassDescriptor);
|
createPrimaryConstructorForObject((JetDeclaration) declaration, mutableClassDescriptor);
|
||||||
owner.addObjectDescriptor(mutableClassDescriptor);
|
owner.addObjectDescriptor(mutableClassDescriptor);
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ package toplevelObjectDeclarations {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
object B : `!`A {}
|
object B : A {}
|
||||||
|
|
||||||
~ns.x~val x = `A`A.`foo()`foo()
|
~ns.x~val x = `A`A.`foo()`foo()
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package testing
|
||||||
|
|
||||||
|
public object SimpleTestClass {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fun some() {
|
||||||
|
S<caret>
|
||||||
|
}
|
||||||
|
|
||||||
|
// EXIST: SimpleTestClass
|
||||||
|
// EXIST: String
|
||||||
Reference in New Issue
Block a user