Obtain type parameters of constructor from containing class
Effectively this commit is just inlining of 'typeParameters' parameter
This commit is contained in:
+1
-1
@@ -227,7 +227,7 @@ public class SingleAbstractMethodUtils {
|
|||||||
@NotNull List<ValueParameterDescriptor> valueParameters,
|
@NotNull List<ValueParameterDescriptor> valueParameters,
|
||||||
@NotNull KotlinType returnType
|
@NotNull KotlinType returnType
|
||||||
) {
|
) {
|
||||||
result.initialize(typeParameters, valueParameters, original.getVisibility());
|
result.initialize(valueParameters, original.getVisibility());
|
||||||
result.setReturnType(returnType);
|
result.setReturnType(returnType);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -241,7 +241,6 @@ class FunctionDescriptorResolver(
|
|||||||
true,
|
true,
|
||||||
classElement.getPrimaryConstructorModifierList(),
|
classElement.getPrimaryConstructorModifierList(),
|
||||||
classElement.getPrimaryConstructor() ?: classElement,
|
classElement.getPrimaryConstructor() ?: classElement,
|
||||||
classDescriptor.getTypeConstructor().getParameters(),
|
|
||||||
classElement.getPrimaryConstructorParameters(),
|
classElement.getPrimaryConstructorParameters(),
|
||||||
trace
|
trace
|
||||||
)
|
)
|
||||||
@@ -259,7 +258,6 @@ class FunctionDescriptorResolver(
|
|||||||
false,
|
false,
|
||||||
constructor.getModifierList(),
|
constructor.getModifierList(),
|
||||||
constructor,
|
constructor,
|
||||||
classDescriptor.getTypeConstructor().getParameters(),
|
|
||||||
constructor.getValueParameters(),
|
constructor.getValueParameters(),
|
||||||
trace
|
trace
|
||||||
)
|
)
|
||||||
@@ -271,7 +269,6 @@ class FunctionDescriptorResolver(
|
|||||||
isPrimary: Boolean,
|
isPrimary: Boolean,
|
||||||
modifierList: KtModifierList?,
|
modifierList: KtModifierList?,
|
||||||
declarationToTrace: KtDeclaration,
|
declarationToTrace: KtDeclaration,
|
||||||
typeParameters: List<TypeParameterDescriptor>,
|
|
||||||
valueParameters: List<KtParameter>,
|
valueParameters: List<KtParameter>,
|
||||||
trace: BindingTrace
|
trace: BindingTrace
|
||||||
): ConstructorDescriptorImpl {
|
): ConstructorDescriptorImpl {
|
||||||
@@ -291,7 +288,6 @@ class FunctionDescriptorResolver(
|
|||||||
)
|
)
|
||||||
parameterScope.changeLockLevel(LexicalWritableScope.LockLevel.BOTH)
|
parameterScope.changeLockLevel(LexicalWritableScope.LockLevel.BOTH)
|
||||||
val constructor = constructorDescriptor.initialize(
|
val constructor = constructorDescriptor.initialize(
|
||||||
typeParameters,
|
|
||||||
resolveValueParameters(constructorDescriptor, parameterScope, valueParameters, trace, null),
|
resolveValueParameters(constructorDescriptor, parameterScope, valueParameters, trace, null),
|
||||||
resolveVisibilityFromModifiers(
|
resolveVisibilityFromModifiers(
|
||||||
modifierList,
|
modifierList,
|
||||||
|
|||||||
-1
@@ -118,7 +118,6 @@ public class LazyScriptClassMemberScope protected constructor(
|
|||||||
true,
|
true,
|
||||||
SourceElement.NO_SOURCE
|
SourceElement.NO_SOURCE
|
||||||
).initialize(
|
).initialize(
|
||||||
listOf(),
|
|
||||||
valueParameters,
|
valueParameters,
|
||||||
Visibilities.PUBLIC
|
Visibilities.PUBLIC
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-3
@@ -480,7 +480,6 @@ public class LazyJavaClassMemberScope(
|
|||||||
constructor, false, null, null, valueParameters.descriptors, Collections.emptyList(), false)
|
constructor, false, null, null, valueParameters.descriptors, Collections.emptyList(), false)
|
||||||
|
|
||||||
constructorDescriptor.initialize(
|
constructorDescriptor.initialize(
|
||||||
classDescriptor.getTypeConstructor().getParameters(),
|
|
||||||
effectiveSignature.getValueParameters(),
|
effectiveSignature.getValueParameters(),
|
||||||
constructor.getVisibility()
|
constructor.getVisibility()
|
||||||
)
|
)
|
||||||
@@ -508,12 +507,11 @@ public class LazyJavaClassMemberScope(
|
|||||||
val constructorDescriptor = JavaConstructorDescriptor.createJavaConstructor(
|
val constructorDescriptor = JavaConstructorDescriptor.createJavaConstructor(
|
||||||
classDescriptor, Annotations.EMPTY, /* isPrimary = */ true, c.components.sourceElementFactory.source(jClass)
|
classDescriptor, Annotations.EMPTY, /* isPrimary = */ true, c.components.sourceElementFactory.source(jClass)
|
||||||
)
|
)
|
||||||
val typeParameters = classDescriptor.getTypeConstructor().getParameters()
|
|
||||||
val valueParameters = if (isAnnotation) createAnnotationConstructorParameters(constructorDescriptor)
|
val valueParameters = if (isAnnotation) createAnnotationConstructorParameters(constructorDescriptor)
|
||||||
else Collections.emptyList<ValueParameterDescriptor>()
|
else Collections.emptyList<ValueParameterDescriptor>()
|
||||||
constructorDescriptor.setHasSynthesizedParameterNames(false)
|
constructorDescriptor.setHasSynthesizedParameterNames(false)
|
||||||
|
|
||||||
constructorDescriptor.initialize(typeParameters, valueParameters, getConstructorVisibility(classDescriptor))
|
constructorDescriptor.initialize(valueParameters, getConstructorVisibility(classDescriptor))
|
||||||
constructorDescriptor.setHasStableParameterNames(true)
|
constructorDescriptor.setHasStableParameterNames(true)
|
||||||
constructorDescriptor.setReturnType(classDescriptor.getDefaultType())
|
constructorDescriptor.setReturnType(classDescriptor.getDefaultType())
|
||||||
c.components.javaResolverCache.recordConstructor(jClass, constructorDescriptor);
|
c.components.javaResolverCache.recordConstructor(jClass, constructorDescriptor);
|
||||||
|
|||||||
+5
-3
@@ -55,12 +55,14 @@ public class ConstructorDescriptorImpl extends FunctionDescriptorImpl implements
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ConstructorDescriptorImpl initialize(
|
public ConstructorDescriptorImpl initialize(
|
||||||
@NotNull List<TypeParameterDescriptor> typeParameters,
|
|
||||||
@NotNull List<ValueParameterDescriptor> unsubstitutedValueParameters,
|
@NotNull List<ValueParameterDescriptor> unsubstitutedValueParameters,
|
||||||
@NotNull Visibility visibility
|
@NotNull Visibility visibility
|
||||||
) {
|
) {
|
||||||
super.initialize(null, calculateDispatchReceiverParameter(), typeParameters, unsubstitutedValueParameters, null,
|
super.initialize(
|
||||||
Modality.FINAL, visibility);
|
null, calculateDispatchReceiverParameter(),
|
||||||
|
getContainingDeclaration().getDeclaredTypeParameters(),
|
||||||
|
unsubstitutedValueParameters, null,
|
||||||
|
Modality.FINAL, visibility);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public class DescriptorFactory {
|
|||||||
private static class DefaultConstructorDescriptor extends ConstructorDescriptorImpl {
|
private static class DefaultConstructorDescriptor extends ConstructorDescriptorImpl {
|
||||||
public DefaultConstructorDescriptor(@NotNull ClassDescriptor containingClass, @NotNull SourceElement source) {
|
public DefaultConstructorDescriptor(@NotNull ClassDescriptor containingClass, @NotNull SourceElement source) {
|
||||||
super(containingClass, null, Annotations.Companion.getEMPTY(), true, Kind.DECLARATION, source);
|
super(containingClass, null, Annotations.Companion.getEMPTY(), true, Kind.DECLARATION, source);
|
||||||
initialize(Collections.<TypeParameterDescriptor>emptyList(), Collections.<ValueParameterDescriptor>emptyList(),
|
initialize(Collections.<ValueParameterDescriptor>emptyList(),
|
||||||
getDefaultConstructorVisibility(containingClass));
|
getDefaultConstructorVisibility(containingClass));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ public class ErrorUtils {
|
|||||||
Modality.OPEN, Collections.<KotlinType>emptyList(), SourceElement.NO_SOURCE);
|
Modality.OPEN, Collections.<KotlinType>emptyList(), SourceElement.NO_SOURCE);
|
||||||
|
|
||||||
ConstructorDescriptorImpl errorConstructor = ConstructorDescriptorImpl.create(this, Annotations.Companion.getEMPTY(), true, SourceElement.NO_SOURCE);
|
ConstructorDescriptorImpl errorConstructor = ConstructorDescriptorImpl.create(this, Annotations.Companion.getEMPTY(), true, SourceElement.NO_SOURCE);
|
||||||
errorConstructor.initialize(Collections.<TypeParameterDescriptor>emptyList(), Collections.<ValueParameterDescriptor>emptyList(),
|
errorConstructor.initialize(Collections.<ValueParameterDescriptor>emptyList(),
|
||||||
Visibilities.INTERNAL);
|
Visibilities.INTERNAL);
|
||||||
MemberScope memberScope = createErrorScope(getName().asString());
|
MemberScope memberScope = createErrorScope(getName().asString());
|
||||||
errorConstructor.setReturnType(
|
errorConstructor.setReturnType(
|
||||||
|
|||||||
-1
@@ -170,7 +170,6 @@ public class MemberDeserializer(private val c: DeserializationContext) {
|
|||||||
)
|
)
|
||||||
val local = c.childContext(descriptor, listOf())
|
val local = c.childContext(descriptor, listOf())
|
||||||
descriptor.initialize(
|
descriptor.initialize(
|
||||||
classDescriptor.typeConstructor.parameters,
|
|
||||||
local.memberDeserializer.valueParameters(proto.valueParameterList, proto, AnnotatedCallableKind.FUNCTION),
|
local.memberDeserializer.valueParameters(proto.valueParameterList, proto, AnnotatedCallableKind.FUNCTION),
|
||||||
Deserialization.visibility(Flags.VISIBILITY.get(proto.flags))
|
Deserialization.visibility(Flags.VISIBILITY.get(proto.flags))
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -69,7 +69,7 @@ private class MissingDependencyErrorClassDescriptor(
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
val emptyConstructor = ConstructorDescriptorImpl.create(this, Annotations.EMPTY, true, SourceElement.NO_SOURCE)
|
val emptyConstructor = ConstructorDescriptorImpl.create(this, Annotations.EMPTY, true, SourceElement.NO_SOURCE)
|
||||||
emptyConstructor.initialize(listOf(), listOf(), Visibilities.DEFAULT_VISIBILITY)
|
emptyConstructor.initialize(listOf(), Visibilities.DEFAULT_VISIBILITY)
|
||||||
emptyConstructor.setReturnType(createErrorType("<ERROR RETURN TYPE>"))
|
emptyConstructor.setReturnType(createErrorType("<ERROR RETURN TYPE>"))
|
||||||
initialize(MemberScope.Empty, setOf(emptyConstructor), emptyConstructor)
|
initialize(MemberScope.Empty, setOf(emptyConstructor), emptyConstructor)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user