extract resolveConstructor method
This commit is contained in:
+19
-14
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user