JavaPackageFragmentDescriptor.getKind() introduced
This commit is contained in:
@@ -46,7 +46,6 @@ import org.jetbrains.jet.lang.resolve.java.mapping.KotlinToJavaTypesMap;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.java.scope.JavaClassStaticMembersScope;
|
import org.jetbrains.jet.lang.resolve.java.scope.JavaClassStaticMembersScope;
|
||||||
import org.jetbrains.jet.lang.resolve.java.scope.JavaFullPackageScope;
|
import org.jetbrains.jet.lang.resolve.java.scope.JavaFullPackageScope;
|
||||||
import org.jetbrains.jet.lang.resolve.java.scope.JavaPurePackageScope;
|
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
@@ -65,6 +64,7 @@ import static org.jetbrains.jet.codegen.AsmUtil.getTraitImplThisParameterType;
|
|||||||
import static org.jetbrains.jet.codegen.CodegenUtil.*;
|
import static org.jetbrains.jet.codegen.CodegenUtil.*;
|
||||||
import static org.jetbrains.jet.codegen.FunctionTypesUtil.getFunctionTraitClassName;
|
import static org.jetbrains.jet.codegen.FunctionTypesUtil.getFunctionTraitClassName;
|
||||||
import static org.jetbrains.jet.codegen.binding.CodegenBinding.*;
|
import static org.jetbrains.jet.codegen.binding.CodegenBinding.*;
|
||||||
|
import static org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptor.Kind.CLASS_STATICS;
|
||||||
|
|
||||||
public class JetTypeMapper extends BindingTraceAware {
|
public class JetTypeMapper extends BindingTraceAware {
|
||||||
|
|
||||||
@@ -154,16 +154,11 @@ public class JetTypeMapper extends BindingTraceAware {
|
|||||||
}
|
}
|
||||||
r.append(pathItem.shortName().asString());
|
r.append(pathItem.shortName().asString());
|
||||||
|
|
||||||
JetScope memberScope = javaFragmentProvider.getPackageFragment(pathItem).getMemberScope();
|
JavaPackageFragmentDescriptor fragment = javaFragmentProvider.getPackageFragment(pathItem);
|
||||||
if (memberScope instanceof JavaClassStaticMembersScope) {
|
if (fragment == null) {
|
||||||
r.append("$");
|
throw new IllegalStateException("Package fragment not found: " + pathItem);
|
||||||
}
|
|
||||||
else if (memberScope instanceof JavaPurePackageScope || memberScope instanceof JavaFullPackageScope) {
|
|
||||||
r.append("/");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
throw new IllegalStateException("Unexpected scope: " + memberScope.getClass());
|
|
||||||
}
|
}
|
||||||
|
r.append(fragment.getKind() == CLASS_STATICS ? "$" : "/");
|
||||||
}
|
}
|
||||||
|
|
||||||
r.append(packageFragment.getName().asString());
|
r.append(packageFragment.getName().asString());
|
||||||
|
|||||||
+8
@@ -23,4 +23,12 @@ import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
|||||||
public interface JavaPackageFragmentDescriptor extends PackageFragmentDescriptor {
|
public interface JavaPackageFragmentDescriptor extends PackageFragmentDescriptor {
|
||||||
@NotNull
|
@NotNull
|
||||||
JavaDescriptorResolver getJavaDescriptorResolver();
|
JavaDescriptorResolver getJavaDescriptorResolver();
|
||||||
|
|
||||||
|
enum Kind {
|
||||||
|
PROPER,
|
||||||
|
CLASS_STATICS,
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
Kind getKind();
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -26,6 +26,7 @@ import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.impl.DeclarationDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.impl.DeclarationDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.scope.JavaClassStaticMembersScope;
|
||||||
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageFragmentScope;
|
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageFragmentScope;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
||||||
@@ -59,6 +60,11 @@ public class JavaPackageFragmentDescriptorImpl extends DeclarationDescriptorImpl
|
|||||||
this.memberScope = scopeFactory.fun(this);
|
this.memberScope = scopeFactory.fun(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public Kind getKind() {
|
||||||
|
return memberScope instanceof JavaClassStaticMembersScope ? Kind.CLASS_STATICS : Kind.PROPER;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user