resolveMutableClassDescriptor() removed

This commit is contained in:
Andrey Breslav
2015-01-23 20:23:17 +03:00
parent b567356702
commit 253d76669d
2 changed files with 21 additions and 51 deletions
@@ -108,43 +108,6 @@ public class DescriptorResolver {
this.builtIns = builtIns;
}
public void resolveMutableClassDescriptor(
@NotNull JetClass classElement,
@NotNull MutableClassDescriptor descriptor,
BindingTrace trace
) {
// TODO : Where-clause
List<JetTypeParameter> typeParameters = classElement.getTypeParameters();
List<TypeParameterDescriptor> typeParameterDescriptors = new ArrayList<TypeParameterDescriptor>(typeParameters.size());
if (descriptor.getKind() == ClassKind.ENUM_CLASS) {
JetTypeParameterList typeParameterList = classElement.getTypeParameterList();
if (typeParameterList != null) {
trace.report(TYPE_PARAMETERS_IN_ENUM.on(typeParameterList));
}
}
int index = 0;
for (JetTypeParameter typeParameter : typeParameters) {
TypeParameterDescriptor typeParameterDescriptor = TypeParameterDescriptorImpl.createForFurtherModification(
descriptor,
Annotations.EMPTY,
typeParameter.hasModifier(JetTokens.REIFIED_KEYWORD),
typeParameter.getVariance(),
JetPsiUtil.safeName(typeParameter.getName()),
index,
toSourceElement(typeParameter)
);
trace.record(BindingContext.TYPE_PARAMETER, typeParameter, typeParameterDescriptor);
typeParameterDescriptors.add(typeParameterDescriptor);
index++;
}
descriptor.setTypeParameterDescriptors(typeParameterDescriptors);
Modality defaultModality = descriptor.getKind() == ClassKind.TRAIT ? Modality.ABSTRACT : Modality.FINAL;
descriptor.setModality(resolveModalityFromModifiers(classElement, defaultModality));
descriptor.setVisibility(resolveVisibilityFromModifiers(classElement, getDefaultClassVisibility(descriptor)));
trace.record(BindingContext.CLASS, classElement, descriptor);
}
public List<JetType> resolveSupertypes(
@NotNull JetScope scope,
@NotNull ClassDescriptor classDescriptor,
@@ -16,31 +16,33 @@
package org.jetbrains.kotlin.types;
import com.google.common.base.Predicates;
import com.intellij.psi.PsiFile;
import org.jetbrains.kotlin.analyzer.AnalysisResult;
import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
import org.jetbrains.kotlin.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.kotlin.context.ContextPackage;
import org.jetbrains.kotlin.context.GlobalContextImpl;
import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.kotlin.descriptors.impl.MutableClassDescriptor;
import org.jetbrains.kotlin.di.InjectorForLazyResolve;
import org.jetbrains.kotlin.di.InjectorForTests;
import org.jetbrains.kotlin.psi.*;
import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider;
import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.BindingTraceContext;
import org.jetbrains.kotlin.resolve.DescriptorResolver;
import org.jetbrains.kotlin.resolve.TopDownAnalysisParameters;
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo;
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
import org.jetbrains.kotlin.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
import org.jetbrains.kotlin.resolve.scopes.JetScope;
import org.jetbrains.kotlin.resolve.scopes.RedeclarationHandler;
import org.jetbrains.kotlin.resolve.scopes.WritableScope;
import org.jetbrains.kotlin.resolve.scopes.WritableScopeImpl;
import org.jetbrains.kotlin.storage.ExceptionTracker;
import org.jetbrains.kotlin.storage.LockBasedStorageManager;
import org.jetbrains.kotlin.test.ConfigurationKind;
import org.jetbrains.kotlin.test.JetLiteFixture;
import org.jetbrains.kotlin.test.JetTestUtils;
import java.util.Collections;
import java.util.List;
import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory;
@@ -97,14 +99,19 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
}
private ClassDescriptorWithResolutionScopes createClassDescriptor(ClassKind kind, JetClass aClass) {
MutableClassDescriptor classDescriptor =
new MutableClassDescriptor(root, scope, kind, false, aClass.getNameAsSafeName(), SourceElement.NO_SOURCE);
TopDownAnalysisParameters parameters = TopDownAnalysisParameters.create(
LockBasedStorageManager.NO_LOCKS, new ExceptionTracker(), Predicates.<PsiFile>alwaysTrue(), false, false
);
descriptorResolver.resolveMutableClassDescriptor(
aClass, classDescriptor, JetTestUtils.DUMMY_TRACE);
return classDescriptor;
GlobalContextImpl globalContext = ContextPackage.GlobalContext();
ResolveSession resolveSession = new InjectorForLazyResolve(
getProject(),
globalContext,
root,
new FileBasedDeclarationProviderFactory(globalContext.getStorageManager(),
Collections.singleton(aClass.getContainingJetFile())),
new BindingTraceContext(),
AdditionalCheckerProvider.DefaultProvider.INSTANCE$,
new DynamicTypesSettings()
).getResolveSession();
return (ClassDescriptorWithResolutionScopes) resolveSession.getClassDescriptor(aClass);
}
private void testClassModality(String classDeclaration, ClassKind kind, Modality expectedModality) {