qualified types supported
This commit is contained in:
@@ -47,18 +47,15 @@ public class TypeVisitor extends PsiTypeVisitor<Type> {
|
||||
|
||||
if (classType instanceof PsiClassReferenceType) { // TODO: simplify
|
||||
final PsiJavaCodeReferenceElement reference = ((PsiClassReferenceType) classType).getReference();
|
||||
PsiElement resolveClass = reference.resolve();
|
||||
if (resolveClass != null && resolveClass instanceof PsiClass) {
|
||||
final PsiClass innerClass = (PsiClass) resolveClass;
|
||||
PsiClass outerClass = innerClass.getContainingClass();
|
||||
if (outerClass != null) {
|
||||
String result = new IdentifierImpl(innerClass.getName()).toKotlin();
|
||||
while (outerClass != null) {
|
||||
result = new IdentifierImpl(outerClass.getName()).toKotlin() + "." + result;
|
||||
outerClass = outerClass.getContainingClass();
|
||||
}
|
||||
classTypeName = result;
|
||||
if (reference.isQualified()) {
|
||||
String result = new IdentifierImpl(reference.getReferenceName()).toKotlin();
|
||||
PsiElement qualifier = reference.getQualifier();
|
||||
while (qualifier != null) {
|
||||
final PsiJavaCodeReferenceElement p = (PsiJavaCodeReferenceElement) qualifier;
|
||||
result = new IdentifierImpl(p.getReferenceName()).toKotlin() + "." + result; // TODO: maybe need to replace by safe call?
|
||||
qualifier = p.getQualifier();
|
||||
}
|
||||
classTypeName = result;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
open class Library() {
|
||||
class object {
|
||||
val ourOut : PrintStream?
|
||||
val ourOut : java.io.PrintStream?
|
||||
}
|
||||
}
|
||||
open class User() {
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package test;
|
||||
|
||||
class User {
|
||||
void main() {
|
||||
java.util.List list = new java.util.LinkedList();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace test {
|
||||
open class User() {
|
||||
open fun main() : Unit {
|
||||
var list : java.util.List? = java.util.LinkedList()
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user