JavaPackageFragmentDescriptor.getKind() introduced

This commit is contained in:
Andrey Breslav
2013-12-23 21:25:25 +04:00
parent 37a79e8299
commit 09642df623
3 changed files with 19 additions and 10 deletions
@@ -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.scope.JavaClassStaticMembersScope;
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.FqNameUnsafe;
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.FunctionTypesUtil.getFunctionTraitClassName;
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 {
@@ -154,16 +154,11 @@ public class JetTypeMapper extends BindingTraceAware {
}
r.append(pathItem.shortName().asString());
JetScope memberScope = javaFragmentProvider.getPackageFragment(pathItem).getMemberScope();
if (memberScope instanceof JavaClassStaticMembersScope) {
r.append("$");
}
else if (memberScope instanceof JavaPurePackageScope || memberScope instanceof JavaFullPackageScope) {
r.append("/");
}
else {
throw new IllegalStateException("Unexpected scope: " + memberScope.getClass());
JavaPackageFragmentDescriptor fragment = javaFragmentProvider.getPackageFragment(pathItem);
if (fragment == null) {
throw new IllegalStateException("Package fragment not found: " + pathItem);
}
r.append(fragment.getKind() == CLASS_STATICS ? "$" : "/");
}
r.append(packageFragment.getName().asString());
@@ -23,4 +23,12 @@ import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
public interface JavaPackageFragmentDescriptor extends PackageFragmentDescriptor {
@NotNull
JavaDescriptorResolver getJavaDescriptorResolver();
enum Kind {
PROPER,
CLASS_STATICS,
}
@NotNull
Kind getKind();
}
@@ -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.resolve.java.JavaDescriptorResolver;
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.name.FqName;
import org.jetbrains.jet.lang.types.TypeSubstitutor;
@@ -59,6 +60,11 @@ public class JavaPackageFragmentDescriptorImpl extends DeclarationDescriptorImpl
this.memberScope = scopeFactory.fun(this);
}
@NotNull
@Override
public Kind getKind() {
return memberScope instanceof JavaClassStaticMembersScope ? Kind.CLASS_STATICS : Kind.PROPER;
}
@NotNull
@Override