extract resolveConstructor method

This commit is contained in:
Stepan Koltsov
2012-04-27 19:09:38 +04:00
parent 583e3c9b85
commit fca0b8a530
@@ -539,10 +539,25 @@ public class JavaDescriptorResolver {
} }
else { else {
for (PsiMethod psiConstructor : psiConstructors) { for (PsiMethod psiConstructor : psiConstructors) {
resolveConstructor(psiClass, classData, isStatic, psiConstructor);
}
}
MutableClassDescriptorLite classObject = createClassObjectDescriptor(classData.classDescriptor, psiClass);
if (classObject != null) {
classData.classDescriptor.setClassObjectDescriptor(classObject);
}
trace.record(BindingContext.CLASS, psiClass, classData.classDescriptor);
return classData;
}
private void resolveConstructor(PsiClass psiClass, ResolverBinaryClassData classData, boolean aStatic, PsiMethod psiConstructor) {
PsiMethodWrapper constructor = new PsiMethodWrapper(psiConstructor); PsiMethodWrapper constructor = new PsiMethodWrapper(psiConstructor);
if (constructor.getJetConstructor().hidden()) { if (constructor.getJetConstructor().hidden()) {
continue; return;
} }
ConstructorDescriptorImpl constructorDescriptor = new ConstructorDescriptorImpl( ConstructorDescriptorImpl constructorDescriptor = new ConstructorDescriptorImpl(
@@ -556,23 +571,13 @@ public class JavaDescriptorResolver {
if (valueParameterDescriptors.receiverType != null) { if (valueParameterDescriptors.receiverType != null) {
throw new IllegalStateException(); throw new IllegalStateException();
} }
constructorDescriptor.initialize(typeParameters, valueParameterDescriptors.descriptors, constructorDescriptor.initialize(classData.classDescriptor.getTypeConstructor().getParameters(),
resolveVisibilityFromPsiModifiers(psiConstructor), isStatic); valueParameterDescriptors.descriptors,
resolveVisibilityFromPsiModifiers(psiConstructor), aStatic);
constructorDescriptor.setReturnType(classData.classDescriptor.getDefaultType()); constructorDescriptor.setReturnType(classData.classDescriptor.getDefaultType());
classData.classDescriptor.addConstructor(constructorDescriptor, null); classData.classDescriptor.addConstructor(constructorDescriptor, null);
trace.record(BindingContext.CONSTRUCTOR, psiConstructor, constructorDescriptor); trace.record(BindingContext.CONSTRUCTOR, psiConstructor, constructorDescriptor);
} }
}
MutableClassDescriptorLite classObject = createClassObjectDescriptor(classData.classDescriptor, psiClass);
if (classObject != null) {
classData.classDescriptor.setClassObjectDescriptor(classObject);
}
trace.record(BindingContext.CLASS, psiClass, classData.classDescriptor);
return classData;
}
static void checkPsiClassIsNotJet(PsiClass psiClass) { static void checkPsiClassIsNotJet(PsiClass psiClass) {
if (psiClass instanceof JetJavaMirrorMarker) { if (psiClass instanceof JetJavaMirrorMarker) {