J2K ValueParameterDescriptor inteface in one go
This commit is contained in:
+1
-1
@@ -175,7 +175,7 @@ public class DefaultParameterValueSubstitutor(val state: GenerationState) {
|
||||
}
|
||||
else {
|
||||
AsmUtil.pushDefaultValueOnStack(paramType, v)
|
||||
val i = parameterDescriptor.getIndex()
|
||||
val i = parameterDescriptor.index
|
||||
if (i != 0 && i % Integer.SIZE == 0) {
|
||||
masks.add(mask)
|
||||
mask = 0
|
||||
|
||||
@@ -131,7 +131,7 @@ public fun getExpectedTypePredicate(
|
||||
val candidateParameter = mapping.valueParameter
|
||||
val resolvedArgument = candidateArgumentMap.get(candidateParameter)
|
||||
val expectedType = if (resolvedArgument is VarargValueArgument)
|
||||
candidateParameter.getVarargElementType()
|
||||
candidateParameter.varargElementType
|
||||
else
|
||||
candidateParameter.getType()
|
||||
|
||||
@@ -190,7 +190,7 @@ public fun getExpectedTypePredicate(
|
||||
it.arguments[value]?.let { parameter ->
|
||||
val expectedType = when (it.resolvedCall.getValueArguments()[parameter]) {
|
||||
is VarargValueArgument ->
|
||||
parameter.getVarargElementType()
|
||||
parameter.varargElementType
|
||||
else ->
|
||||
parameter.getType()
|
||||
}
|
||||
|
||||
@@ -183,10 +183,10 @@ public object Renderers {
|
||||
val parameterTypes = Lists.newArrayList<KotlinType>()
|
||||
for (valueParameterDescriptor in substitutedDescriptor.getValueParameters()) {
|
||||
parameterTypes.add(valueParameterDescriptor.getType())
|
||||
if (valueParameterDescriptor.getIndex() >= inferenceErrorData.valueArgumentsTypes.size()) continue
|
||||
val actualType = inferenceErrorData.valueArgumentsTypes.get(valueParameterDescriptor.getIndex())
|
||||
if (valueParameterDescriptor.index >= inferenceErrorData.valueArgumentsTypes.size()) continue
|
||||
val actualType = inferenceErrorData.valueArgumentsTypes.get(valueParameterDescriptor.index)
|
||||
if (!KotlinTypeChecker.DEFAULT.isSubtypeOf(actualType, valueParameterDescriptor.getType())) {
|
||||
errorPositions.add(VALUE_PARAMETER_POSITION.position(valueParameterDescriptor.getIndex()))
|
||||
errorPositions.add(VALUE_PARAMETER_POSITION.position(valueParameterDescriptor.index))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ class FunctionDescriptorResolver(
|
||||
val it = ValueParameterDescriptorImpl(functionDescriptor, null, 0, Annotations.EMPTY, Name.identifier("it"),
|
||||
valueParameterDescriptor.getType(), valueParameterDescriptor.declaresDefaultValue(),
|
||||
valueParameterDescriptor.isCrossinline, valueParameterDescriptor.isNoinline,
|
||||
valueParameterDescriptor.getVarargElementType(), SourceElement.NO_SOURCE)
|
||||
valueParameterDescriptor.varargElementType, SourceElement.NO_SOURCE)
|
||||
trace.record(BindingContext.AUTO_CREATED_IT, it)
|
||||
return listOf(it)
|
||||
}
|
||||
|
||||
@@ -148,13 +148,13 @@ public fun getSuperCallExpression(call: Call): KtSuperExpression? {
|
||||
|
||||
public fun getEffectiveExpectedType(parameterDescriptor: ValueParameterDescriptor, argument: ValueArgument): KotlinType {
|
||||
if (argument.getSpreadElement() != null) {
|
||||
if (parameterDescriptor.getVarargElementType() == null) {
|
||||
if (parameterDescriptor.varargElementType == null) {
|
||||
// Spread argument passed to a non-vararg parameter, an error is already reported by ValueArgumentsToParametersMapper
|
||||
return DONT_CARE
|
||||
}
|
||||
return parameterDescriptor.getType()
|
||||
}
|
||||
val varargElementType = parameterDescriptor.getVarargElementType()
|
||||
val varargElementType = parameterDescriptor.varargElementType
|
||||
if (varargElementType != null) {
|
||||
return varargElementType
|
||||
}
|
||||
|
||||
+4
-4
@@ -75,7 +75,7 @@ class GenericCandidateResolver(
|
||||
// Value parameters
|
||||
for (entry in candidateCall.getValueArguments().entrySet()) {
|
||||
val resolvedValueArgument = entry.getValue()
|
||||
val valueParameterDescriptor = candidate.getValueParameters().get(entry.getKey().getIndex())
|
||||
val valueParameterDescriptor = candidate.getValueParameters().get(entry.getKey().index)
|
||||
|
||||
|
||||
for (valueArgument in resolvedValueArgument.getArguments()) {
|
||||
@@ -131,7 +131,7 @@ class GenericCandidateResolver(
|
||||
val typeInfoForCall = argumentTypeResolver.getArgumentTypeInfo(argumentExpression, newContext, resolveFunctionArgumentBodies)
|
||||
context.candidateCall.getDataFlowInfoForArguments().updateInfo(valueArgument, typeInfoForCall.dataFlowInfo)
|
||||
|
||||
val constraintPosition = VALUE_PARAMETER_POSITION.position(valueParameterDescriptor.getIndex())
|
||||
val constraintPosition = VALUE_PARAMETER_POSITION.position(valueParameterDescriptor.index)
|
||||
|
||||
if (addConstraintForNestedCall(argumentExpression, constraintPosition, constraintSystem, newContext, effectiveExpectedType)) return
|
||||
|
||||
@@ -240,7 +240,7 @@ class GenericCandidateResolver(
|
||||
|
||||
//todo analyze function literal body once in 'dependent' mode, then complete it with respect to expected type
|
||||
val hasExpectedReturnType = !hasUnknownReturnType(expectedType)
|
||||
val position = VALUE_PARAMETER_POSITION.position(valueParameterDescriptor.getIndex())
|
||||
val position = VALUE_PARAMETER_POSITION.position(valueParameterDescriptor.index)
|
||||
if (hasExpectedReturnType) {
|
||||
val temporaryToResolveFunctionLiteral = TemporaryTraceAndCache.create(
|
||||
context, "trace to resolve function literal with expected return type", argumentExpression)
|
||||
@@ -279,7 +279,7 @@ class GenericCandidateResolver(
|
||||
?: return
|
||||
if (!ReflectionTypes.isCallableType(expectedType)) return
|
||||
val resolvedType = getResolvedTypeForCallableReference(callableReference, context, expectedType, valueArgument)
|
||||
val position = VALUE_PARAMETER_POSITION.position(valueParameterDescriptor.getIndex())
|
||||
val position = VALUE_PARAMETER_POSITION.position(valueParameterDescriptor.index)
|
||||
constraintSystem.addSubtypeConstraint(resolvedType, effectiveExpectedType, position)
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -74,8 +74,8 @@ private fun createSynthesizedFunctionWithFirstParameterAsReceiver(descriptor: Fu
|
||||
original.getTypeParameters(),
|
||||
original.getValueParameters().drop(1).map { p ->
|
||||
ValueParameterDescriptorImpl(
|
||||
result, null, p.getIndex() - 1, p.getAnnotations(), Name.identifier("p${p.getIndex() + 1}"), p.getType(),
|
||||
p.declaresDefaultValue(), p.isCrossinline, p.isNoinline, p.getVarargElementType(), p.getSource()
|
||||
result, null, p.index - 1, p.getAnnotations(), Name.identifier("p${p.index + 1}"), p.getType(),
|
||||
p.declaresDefaultValue(), p.isCrossinline, p.isNoinline, p.varargElementType, p.getSource()
|
||||
)
|
||||
},
|
||||
original.getReturnType(),
|
||||
|
||||
+3
-3
@@ -83,7 +83,7 @@ public class ConstantExpressionEvaluator(
|
||||
parameterDescriptor: ValueParameterDescriptor,
|
||||
resolvedArgument: ResolvedValueArgument
|
||||
): ConstantValue<*>? {
|
||||
val varargElementType = parameterDescriptor.getVarargElementType()
|
||||
val varargElementType = parameterDescriptor.varargElementType
|
||||
val argumentsAsVararg = varargElementType != null && !hasSpread(resolvedArgument)
|
||||
val constantType = if (argumentsAsVararg) varargElementType else parameterDescriptor.getType()
|
||||
val compileTimeConstants = resolveAnnotationValueArguments(resolvedArgument, constantType!!, trace)
|
||||
@@ -153,7 +153,7 @@ public class ConstantExpressionEvaluator(
|
||||
|
||||
val argumentEntry = resolvedCall.getValueArguments().entrySet().single()
|
||||
|
||||
val elementType = argumentEntry.getKey().getVarargElementType() ?: return null
|
||||
val elementType = argumentEntry.getKey().varargElementType ?: return null
|
||||
|
||||
val result = arrayListOf<KtExpression>()
|
||||
for (valueArgument in argumentEntry.getValue().getArguments()) {
|
||||
@@ -588,7 +588,7 @@ private class ConstantExpressionEvaluatorVisitor(
|
||||
|
||||
// arrayOf()
|
||||
if (CompileTimeConstantUtils.isArrayMethodCall(call)) {
|
||||
val varargType = resultingDescriptor.getValueParameters().first().getVarargElementType()!!
|
||||
val varargType = resultingDescriptor.getValueParameters().first().varargElementType!!
|
||||
|
||||
val arguments = call.getValueArguments().values().flatMap { resolveArguments(it.getArguments(), varargType) }
|
||||
|
||||
|
||||
+2
-2
@@ -147,7 +147,7 @@ public open class LazyClassMemberScope(
|
||||
|
||||
for (parameter in constructor.getValueParameters()) {
|
||||
if (parameter.getType().isError()) continue
|
||||
if (!primaryConstructorParameters.get(parameter.getIndex()).hasValOrVar()) continue
|
||||
if (!primaryConstructorParameters.get(parameter.index).hasValOrVar()) continue
|
||||
|
||||
val properties = getProperties(parameter.name, location)
|
||||
if (properties.isEmpty()) continue
|
||||
@@ -219,7 +219,7 @@ public open class LazyClassMemberScope(
|
||||
for (valueParameterDescriptor in valueParameterDescriptors) {
|
||||
if (name != valueParameterDescriptor.getName()) continue
|
||||
|
||||
val parameter = primaryConstructorParameters.get(valueParameterDescriptor.getIndex())
|
||||
val parameter = primaryConstructorParameters.get(valueParameterDescriptor.index)
|
||||
if (parameter.hasValOrVar()) {
|
||||
val propertyDescriptor = c.descriptorResolver.resolvePrimaryConstructorParameterToAProperty(
|
||||
thisDescriptor, valueParameterDescriptor, thisDescriptor.getScopeForClassHeaderResolution(), parameter, trace)
|
||||
|
||||
Reference in New Issue
Block a user