Added AnnotationContext flag
This commit is contained in:
@@ -169,7 +169,8 @@ public class AnnotationResolver {
|
|||||||
trace, scope,
|
trace, scope,
|
||||||
CallMaker.makeCall(ReceiverValue.NO_RECEIVER, null, annotationEntry),
|
CallMaker.makeCall(ReceiverValue.NO_RECEIVER, null, annotationEntry),
|
||||||
NO_EXPECTED_TYPE,
|
NO_EXPECTED_TYPE,
|
||||||
DataFlowInfo.EMPTY);
|
DataFlowInfo.EMPTY,
|
||||||
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resolveAnnotationsArguments(@NotNull JetScope scope, @Nullable JetModifierList modifierList, @NotNull BindingTrace trace) {
|
public void resolveAnnotationsArguments(@NotNull JetScope scope, @Nullable JetModifierList modifierList, @NotNull BindingTrace trace) {
|
||||||
|
|||||||
@@ -217,7 +217,8 @@ public class BodyResolver {
|
|||||||
if (type != null && supertype != null) {
|
if (type != null && supertype != null) {
|
||||||
SimpleResolutionContext simpleResolutionContext = new SimpleResolutionContext(
|
SimpleResolutionContext simpleResolutionContext = new SimpleResolutionContext(
|
||||||
trace, scope, supertype, context.getOuterDataFlowInfo(), ExpressionPosition.FREE, ContextDependency.INDEPENDENT,
|
trace, scope, supertype, context.getOuterDataFlowInfo(), ExpressionPosition.FREE, ContextDependency.INDEPENDENT,
|
||||||
ResolutionResultsCacheImpl.create(), LabelResolver.create(), expressionTypingServices.createExtension(scope));
|
ResolutionResultsCacheImpl.create(), LabelResolver.create(),
|
||||||
|
expressionTypingServices.createExtension(scope, false), false);
|
||||||
DataFlowUtils.checkType(type, delegateExpression, simpleResolutionContext);
|
DataFlowUtils.checkType(type, delegateExpression, simpleResolutionContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -239,7 +240,7 @@ public class BodyResolver {
|
|||||||
}
|
}
|
||||||
OverloadResolutionResults<FunctionDescriptor> results = callResolver.resolveFunctionCall(
|
OverloadResolutionResults<FunctionDescriptor> results = callResolver.resolveFunctionCall(
|
||||||
trace, scopeForConstructor,
|
trace, scopeForConstructor,
|
||||||
CallMaker.makeCall(ReceiverValue.NO_RECEIVER, null, call), NO_EXPECTED_TYPE, context.getOuterDataFlowInfo());
|
CallMaker.makeCall(ReceiverValue.NO_RECEIVER, null, call), NO_EXPECTED_TYPE, context.getOuterDataFlowInfo(), false);
|
||||||
if (results.isSuccess()) {
|
if (results.isSuccess()) {
|
||||||
JetType supertype = results.getResultingDescriptor().getReturnType();
|
JetType supertype = results.getResultingDescriptor().getReturnType();
|
||||||
recordSupertype(typeReference, supertype);
|
recordSupertype(typeReference, supertype);
|
||||||
|
|||||||
@@ -132,12 +132,13 @@ public class CallResolver {
|
|||||||
@NotNull JetScope scope,
|
@NotNull JetScope scope,
|
||||||
@NotNull Call call,
|
@NotNull Call call,
|
||||||
@NotNull JetType expectedType,
|
@NotNull JetType expectedType,
|
||||||
@NotNull DataFlowInfo dataFlowInfo
|
@NotNull DataFlowInfo dataFlowInfo,
|
||||||
|
boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
return resolveFunctionCall(BasicCallResolutionContext.create(
|
return resolveFunctionCall(BasicCallResolutionContext.create(
|
||||||
trace, scope, call, expectedType, dataFlowInfo, ContextDependency.INDEPENDENT, CheckValueArgumentsMode.ENABLED,
|
trace, scope, call, expectedType, dataFlowInfo, ContextDependency.INDEPENDENT, CheckValueArgumentsMode.ENABLED,
|
||||||
ExpressionPosition.FREE, ResolutionResultsCacheImpl.create(), LabelResolver.create(), null,
|
ExpressionPosition.FREE, ResolutionResultsCacheImpl.create(), LabelResolver.create(), null,
|
||||||
expressionTypingServices.createExtension(scope)));
|
expressionTypingServices.createExtension(scope, isAnnotationContext), isAnnotationContext));
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
+2
-2
@@ -31,8 +31,8 @@ public class CallResolverExtensionProvider {
|
|||||||
private WeakReference<Map<DeclarationDescriptor, List<CallResolverExtension>>> extensionsCache;
|
private WeakReference<Map<DeclarationDescriptor, List<CallResolverExtension>>> extensionsCache;
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public CallResolverExtension createExtension(@Nullable DeclarationDescriptor descriptor) {
|
public CallResolverExtension createExtension(@Nullable DeclarationDescriptor descriptor, boolean isAnnotationContext) {
|
||||||
if (descriptor == null) {
|
if (descriptor == null || isAnnotationContext) {
|
||||||
return DEFAULT;
|
return DEFAULT;
|
||||||
}
|
}
|
||||||
return new CompositeExtension(createExtensions(descriptor));
|
return new CompositeExtension(createExtensions(descriptor));
|
||||||
|
|||||||
+8
-6
@@ -41,11 +41,12 @@ public class BasicCallResolutionContext extends CallResolutionContext<BasicCallR
|
|||||||
@NotNull ResolutionResultsCache resolutionResultsCache,
|
@NotNull ResolutionResultsCache resolutionResultsCache,
|
||||||
@NotNull LabelResolver labelResolver,
|
@NotNull LabelResolver labelResolver,
|
||||||
@Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
@Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
||||||
@NotNull CallResolverExtension callResolverExtension
|
@NotNull CallResolverExtension callResolverExtension,
|
||||||
|
boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
return new BasicCallResolutionContext(
|
return new BasicCallResolutionContext(
|
||||||
trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition,
|
trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition,
|
||||||
resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension);
|
resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension, isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -55,7 +56,8 @@ public class BasicCallResolutionContext extends CallResolutionContext<BasicCallR
|
|||||||
) {
|
) {
|
||||||
return create(
|
return create(
|
||||||
context.trace, context.scope, call, context.expectedType, context.dataFlowInfo, context.contextDependency, checkArguments,
|
context.trace, context.scope, call, context.expectedType, context.dataFlowInfo, context.contextDependency, checkArguments,
|
||||||
context.expressionPosition, context.resolutionResultsCache, context.labelResolver, dataFlowInfoForArguments, context.callResolverExtension);
|
context.expressionPosition, context.resolutionResultsCache, context.labelResolver, dataFlowInfoForArguments,
|
||||||
|
context.callResolverExtension, context.isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -70,10 +72,10 @@ public class BasicCallResolutionContext extends CallResolutionContext<BasicCallR
|
|||||||
DataFlowInfo dataFlowInfo, ContextDependency contextDependency, CheckValueArgumentsMode checkArguments,
|
DataFlowInfo dataFlowInfo, ContextDependency contextDependency, CheckValueArgumentsMode checkArguments,
|
||||||
ExpressionPosition expressionPosition, ResolutionResultsCache resolutionResultsCache,
|
ExpressionPosition expressionPosition, ResolutionResultsCache resolutionResultsCache,
|
||||||
LabelResolver labelResolver, MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
LabelResolver labelResolver, MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
||||||
CallResolverExtension callResolverExtension
|
CallResolverExtension callResolverExtension, boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition, resolutionResultsCache,
|
super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition, resolutionResultsCache,
|
||||||
labelResolver, dataFlowInfoForArguments, callResolverExtension);
|
labelResolver, dataFlowInfoForArguments, callResolverExtension, isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -88,7 +90,7 @@ public class BasicCallResolutionContext extends CallResolutionContext<BasicCallR
|
|||||||
@NotNull LabelResolver labelResolver
|
@NotNull LabelResolver labelResolver
|
||||||
) {
|
) {
|
||||||
return create(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition,
|
return create(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition,
|
||||||
resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension);
|
resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension, isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+9
-5
@@ -50,10 +50,11 @@ public final class CallCandidateResolutionContext<D extends CallableDescriptor>
|
|||||||
@NotNull ResolutionResultsCache resolutionResultsCache,
|
@NotNull ResolutionResultsCache resolutionResultsCache,
|
||||||
@NotNull LabelResolver labelResolver,
|
@NotNull LabelResolver labelResolver,
|
||||||
@Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
@Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
||||||
@NotNull CallResolverExtension callResolverExtension
|
@NotNull CallResolverExtension callResolverExtension,
|
||||||
|
boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition, resolutionResultsCache,
|
super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition, resolutionResultsCache,
|
||||||
labelResolver, dataFlowInfoForArguments, callResolverExtension);
|
labelResolver, dataFlowInfoForArguments, callResolverExtension, isAnnotationContext);
|
||||||
this.candidateCall = candidateCall;
|
this.candidateCall = candidateCall;
|
||||||
this.tracing = tracing;
|
this.tracing = tracing;
|
||||||
}
|
}
|
||||||
@@ -65,7 +66,8 @@ public final class CallCandidateResolutionContext<D extends CallableDescriptor>
|
|||||||
return new CallCandidateResolutionContext<D>(
|
return new CallCandidateResolutionContext<D>(
|
||||||
candidateCall, tracing, trace, context.scope, call, context.expectedType,
|
candidateCall, tracing, trace, context.scope, call, context.expectedType,
|
||||||
context.dataFlowInfo, context.contextDependency, context.checkArguments,
|
context.dataFlowInfo, context.contextDependency, context.checkArguments,
|
||||||
context.expressionPosition, context.resolutionResultsCache, context.labelResolver, context.dataFlowInfoForArguments, context.callResolverExtension);
|
context.expressionPosition, context.resolutionResultsCache, context.labelResolver, context.dataFlowInfoForArguments,
|
||||||
|
context.callResolverExtension, context.isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <D extends CallableDescriptor> CallCandidateResolutionContext<D> create(
|
public static <D extends CallableDescriptor> CallCandidateResolutionContext<D> create(
|
||||||
@@ -80,7 +82,8 @@ public final class CallCandidateResolutionContext<D extends CallableDescriptor>
|
|||||||
return new CallCandidateResolutionContext<D>(
|
return new CallCandidateResolutionContext<D>(
|
||||||
candidateCall, tracing, context.trace, context.scope, context.call, context.expectedType,
|
candidateCall, tracing, context.trace, context.scope, context.call, context.expectedType,
|
||||||
context.dataFlowInfo, context.contextDependency, context.checkArguments, context.expressionPosition,
|
context.dataFlowInfo, context.contextDependency, context.checkArguments, context.expressionPosition,
|
||||||
context.resolutionResultsCache, context.labelResolver, context.dataFlowInfoForArguments, context.callResolverExtension);
|
context.resolutionResultsCache, context.labelResolver, context.dataFlowInfoForArguments, context.callResolverExtension,
|
||||||
|
context.isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -96,7 +99,8 @@ public final class CallCandidateResolutionContext<D extends CallableDescriptor>
|
|||||||
) {
|
) {
|
||||||
return new CallCandidateResolutionContext<D>(
|
return new CallCandidateResolutionContext<D>(
|
||||||
candidateCall, tracing, trace, scope, call, expectedType, dataFlowInfo, contextDependency,
|
candidateCall, tracing, trace, scope, call, expectedType, dataFlowInfo, contextDependency,
|
||||||
checkArguments, expressionPosition, resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension);
|
checkArguments, expressionPosition, resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension,
|
||||||
|
isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
-2
@@ -47,10 +47,11 @@ public abstract class CallResolutionContext<Context extends CallResolutionContex
|
|||||||
@NotNull LabelResolver labelResolver,
|
@NotNull LabelResolver labelResolver,
|
||||||
@SuppressWarnings("NullableProblems")
|
@SuppressWarnings("NullableProblems")
|
||||||
@Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
@Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
||||||
@NotNull CallResolverExtension callResolverExtension
|
@NotNull CallResolverExtension callResolverExtension,
|
||||||
|
boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
super(trace, scope, expectedType, dataFlowInfo, expressionPosition, contextDependency, resolutionResultsCache, labelResolver,
|
super(trace, scope, expectedType, dataFlowInfo, expressionPosition, contextDependency, resolutionResultsCache, labelResolver,
|
||||||
callResolverExtension);
|
callResolverExtension, isAnnotationContext);
|
||||||
this.call = call;
|
this.call = call;
|
||||||
this.checkArguments = checkArguments;
|
this.checkArguments = checkArguments;
|
||||||
if (dataFlowInfoForArguments != null) {
|
if (dataFlowInfoForArguments != null) {
|
||||||
|
|||||||
+4
-1
@@ -36,6 +36,7 @@ public abstract class ResolutionContext<Context extends ResolutionContext<Contex
|
|||||||
public final ResolutionResultsCache resolutionResultsCache;
|
public final ResolutionResultsCache resolutionResultsCache;
|
||||||
public final LabelResolver labelResolver;
|
public final LabelResolver labelResolver;
|
||||||
public final CallResolverExtension callResolverExtension;
|
public final CallResolverExtension callResolverExtension;
|
||||||
|
public final boolean isAnnotationContext;
|
||||||
|
|
||||||
protected ResolutionContext(
|
protected ResolutionContext(
|
||||||
@NotNull BindingTrace trace,
|
@NotNull BindingTrace trace,
|
||||||
@@ -46,7 +47,8 @@ public abstract class ResolutionContext<Context extends ResolutionContext<Contex
|
|||||||
@NotNull ContextDependency contextDependency,
|
@NotNull ContextDependency contextDependency,
|
||||||
@NotNull ResolutionResultsCache resolutionResultsCache,
|
@NotNull ResolutionResultsCache resolutionResultsCache,
|
||||||
@NotNull LabelResolver labelResolver,
|
@NotNull LabelResolver labelResolver,
|
||||||
@NotNull CallResolverExtension callResolverExtension
|
@NotNull CallResolverExtension callResolverExtension,
|
||||||
|
boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
this.trace = trace;
|
this.trace = trace;
|
||||||
this.scope = scope;
|
this.scope = scope;
|
||||||
@@ -57,6 +59,7 @@ public abstract class ResolutionContext<Context extends ResolutionContext<Contex
|
|||||||
this.resolutionResultsCache = resolutionResultsCache;
|
this.resolutionResultsCache = resolutionResultsCache;
|
||||||
this.labelResolver = labelResolver;
|
this.labelResolver = labelResolver;
|
||||||
this.callResolverExtension = callResolverExtension;
|
this.callResolverExtension = callResolverExtension;
|
||||||
|
this.isAnnotationContext = isAnnotationContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract Context create(
|
protected abstract Context create(
|
||||||
|
|||||||
+4
-3
@@ -18,10 +18,11 @@ public class SimpleResolutionContext extends ResolutionContext<SimpleResolutionC
|
|||||||
@NotNull ContextDependency contextDependency,
|
@NotNull ContextDependency contextDependency,
|
||||||
@NotNull ResolutionResultsCache resolutionResultsCache,
|
@NotNull ResolutionResultsCache resolutionResultsCache,
|
||||||
@NotNull LabelResolver labelResolver,
|
@NotNull LabelResolver labelResolver,
|
||||||
@NotNull CallResolverExtension callResolverExtension
|
@NotNull CallResolverExtension callResolverExtension,
|
||||||
|
boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
super(trace, scope, expectedType, dataFlowInfo, expressionPosition, contextDependency, resolutionResultsCache, labelResolver,
|
super(trace, scope, expectedType, dataFlowInfo, expressionPosition, contextDependency, resolutionResultsCache, labelResolver,
|
||||||
callResolverExtension);
|
callResolverExtension, isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -37,7 +38,7 @@ public class SimpleResolutionContext extends ResolutionContext<SimpleResolutionC
|
|||||||
) {
|
) {
|
||||||
return new SimpleResolutionContext(
|
return new SimpleResolutionContext(
|
||||||
trace, scope, expectedType, dataFlowInfo, expressionPosition, contextDependency, resolutionResultsCache, labelResolver,
|
trace, scope, expectedType, dataFlowInfo, expressionPosition, contextDependency, resolutionResultsCache, labelResolver,
|
||||||
callResolverExtension);
|
callResolverExtension, isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+6
-5
@@ -51,10 +51,10 @@ public class ResolutionTask<D extends CallableDescriptor, F extends D> extends C
|
|||||||
DataFlowInfo dataFlowInfo, ContextDependency contextDependency, CheckValueArgumentsMode checkArguments,
|
DataFlowInfo dataFlowInfo, ContextDependency contextDependency, CheckValueArgumentsMode checkArguments,
|
||||||
ExpressionPosition expressionPosition, ResolutionResultsCache resolutionResultsCache,
|
ExpressionPosition expressionPosition, ResolutionResultsCache resolutionResultsCache,
|
||||||
@NotNull LabelResolver labelResolver, @Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
@NotNull LabelResolver labelResolver, @Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments,
|
||||||
@NotNull CallResolverExtension callResolverExtension
|
@NotNull CallResolverExtension callResolverExtension, boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition, resolutionResultsCache,
|
super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, expressionPosition, resolutionResultsCache,
|
||||||
labelResolver, dataFlowInfoForArguments, callResolverExtension);
|
labelResolver, dataFlowInfoForArguments, callResolverExtension, isAnnotationContext);
|
||||||
this.candidates = candidates;
|
this.candidates = candidates;
|
||||||
this.reference = reference;
|
this.reference = reference;
|
||||||
this.tracing = tracing;
|
this.tracing = tracing;
|
||||||
@@ -69,7 +69,8 @@ public class ResolutionTask<D extends CallableDescriptor, F extends D> extends C
|
|||||||
this(candidates, reference, tracing != null ? tracing : TracingStrategyImpl.create(reference, context.call),
|
this(candidates, reference, tracing != null ? tracing : TracingStrategyImpl.create(reference, context.call),
|
||||||
context.trace, context.scope, context.call,
|
context.trace, context.scope, context.call,
|
||||||
context.expectedType, context.dataFlowInfo, context.contextDependency, context.checkArguments,
|
context.expectedType, context.dataFlowInfo, context.contextDependency, context.checkArguments,
|
||||||
context.expressionPosition, context.resolutionResultsCache, context.labelResolver, context.dataFlowInfoForArguments, context.callResolverExtension);
|
context.expressionPosition, context.resolutionResultsCache, context.labelResolver, context.dataFlowInfoForArguments,
|
||||||
|
context.callResolverExtension, context.isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ResolutionTask(
|
public ResolutionTask(
|
||||||
@@ -114,7 +115,7 @@ public class ResolutionTask<D extends CallableDescriptor, F extends D> extends C
|
|||||||
) {
|
) {
|
||||||
ResolutionTask<D, F> newTask = new ResolutionTask<D, F>(
|
ResolutionTask<D, F> newTask = new ResolutionTask<D, F>(
|
||||||
candidates, reference, tracing, trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments,
|
candidates, reference, tracing, trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments,
|
||||||
expressionPosition, resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension);
|
expressionPosition, resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension, isAnnotationContext);
|
||||||
newTask.setCheckingStrategy(checkingStrategy);
|
newTask.setCheckingStrategy(checkingStrategy);
|
||||||
return newTask;
|
return newTask;
|
||||||
}
|
}
|
||||||
@@ -127,7 +128,7 @@ public class ResolutionTask<D extends CallableDescriptor, F extends D> extends C
|
|||||||
public ResolutionTask<D, F> replaceCall(@NotNull Call newCall) {
|
public ResolutionTask<D, F> replaceCall(@NotNull Call newCall) {
|
||||||
return new ResolutionTask<D, F>(
|
return new ResolutionTask<D, F>(
|
||||||
candidates, reference, tracing, trace, scope, newCall, expectedType, dataFlowInfo, contextDependency, checkArguments,
|
candidates, reference, tracing, trace, scope, newCall, expectedType, dataFlowInfo, contextDependency, checkArguments,
|
||||||
expressionPosition, resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension);
|
expressionPosition, resolutionResultsCache, labelResolver, dataFlowInfoForArguments, callResolverExtension, isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface DescriptorCheckStrategy {
|
public interface DescriptorCheckStrategy {
|
||||||
|
|||||||
+9
-7
@@ -43,7 +43,7 @@ public class ExpressionTypingContext extends ResolutionContext<ExpressionTypingC
|
|||||||
) {
|
) {
|
||||||
return newContext(expressionTypingServices, trace, scope, dataFlowInfo, expectedType, expressionPosition,
|
return newContext(expressionTypingServices, trace, scope, dataFlowInfo, expectedType, expressionPosition,
|
||||||
ContextDependency.INDEPENDENT, ResolutionResultsCacheImpl.create(), LabelResolver.create(),
|
ContextDependency.INDEPENDENT, ResolutionResultsCacheImpl.create(), LabelResolver.create(),
|
||||||
expressionTypingServices.createExtension(scope));
|
expressionTypingServices.createExtension(scope, false), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -54,7 +54,7 @@ public class ExpressionTypingContext extends ResolutionContext<ExpressionTypingC
|
|||||||
return newContext(expressionTypingServices, resolutionContext.trace, resolutionContext.scope, resolutionContext.dataFlowInfo,
|
return newContext(expressionTypingServices, resolutionContext.trace, resolutionContext.scope, resolutionContext.dataFlowInfo,
|
||||||
resolutionContext.expectedType, resolutionContext.expressionPosition, resolutionContext.contextDependency,
|
resolutionContext.expectedType, resolutionContext.expressionPosition, resolutionContext.contextDependency,
|
||||||
resolutionContext.resolutionResultsCache, resolutionContext.labelResolver,
|
resolutionContext.resolutionResultsCache, resolutionContext.labelResolver,
|
||||||
resolutionContext.callResolverExtension);
|
resolutionContext.callResolverExtension, resolutionContext.isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -68,11 +68,12 @@ public class ExpressionTypingContext extends ResolutionContext<ExpressionTypingC
|
|||||||
@NotNull ContextDependency contextDependency,
|
@NotNull ContextDependency contextDependency,
|
||||||
@NotNull ResolutionResultsCache resolutionResultsCache,
|
@NotNull ResolutionResultsCache resolutionResultsCache,
|
||||||
@NotNull LabelResolver labelResolver,
|
@NotNull LabelResolver labelResolver,
|
||||||
@NotNull CallResolverExtension callResolverExtension
|
@NotNull CallResolverExtension callResolverExtension,
|
||||||
|
boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
return new ExpressionTypingContext(
|
return new ExpressionTypingContext(
|
||||||
expressionTypingServices, labelResolver, trace, scope, dataFlowInfo, expectedType, expressionPosition, contextDependency, resolutionResultsCache,
|
expressionTypingServices, labelResolver, trace, scope, dataFlowInfo, expectedType, expressionPosition, contextDependency, resolutionResultsCache,
|
||||||
callResolverExtension);
|
callResolverExtension, isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final ExpressionTypingServices expressionTypingServices;
|
public final ExpressionTypingServices expressionTypingServices;
|
||||||
@@ -89,10 +90,11 @@ public class ExpressionTypingContext extends ResolutionContext<ExpressionTypingC
|
|||||||
@NotNull ExpressionPosition expressionPosition,
|
@NotNull ExpressionPosition expressionPosition,
|
||||||
@NotNull ContextDependency contextDependency,
|
@NotNull ContextDependency contextDependency,
|
||||||
@NotNull ResolutionResultsCache resolutionResultsCache,
|
@NotNull ResolutionResultsCache resolutionResultsCache,
|
||||||
@NotNull CallResolverExtension callResolverExtension
|
@NotNull CallResolverExtension callResolverExtension,
|
||||||
|
boolean isAnnotationContext
|
||||||
) {
|
) {
|
||||||
super(trace, scope, expectedType, dataFlowInfo, expressionPosition, contextDependency, resolutionResultsCache, labelResolver,
|
super(trace, scope, expectedType, dataFlowInfo, expressionPosition, contextDependency, resolutionResultsCache, labelResolver,
|
||||||
callResolverExtension);
|
callResolverExtension, isAnnotationContext);
|
||||||
this.expressionTypingServices = expressionTypingServices;
|
this.expressionTypingServices = expressionTypingServices;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +110,7 @@ public class ExpressionTypingContext extends ResolutionContext<ExpressionTypingC
|
|||||||
@NotNull LabelResolver labelResolver
|
@NotNull LabelResolver labelResolver
|
||||||
) {
|
) {
|
||||||
return new ExpressionTypingContext(expressionTypingServices, this.labelResolver, trace, scope, dataFlowInfo, expectedType,
|
return new ExpressionTypingContext(expressionTypingServices, this.labelResolver, trace, scope, dataFlowInfo, expectedType,
|
||||||
expressionPosition, contextDependency, resolutionResultsCache, callResolverExtension);
|
expressionPosition, contextDependency, resolutionResultsCache, callResolverExtension, isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+3
-3
@@ -353,7 +353,7 @@ public class ExpressionTypingServices {
|
|||||||
private ExpressionTypingContext createContext(ExpressionTypingContext oldContext, BindingTrace trace, WritableScope scope, DataFlowInfo dataFlowInfo, JetType expectedType) {
|
private ExpressionTypingContext createContext(ExpressionTypingContext oldContext, BindingTrace trace, WritableScope scope, DataFlowInfo dataFlowInfo, JetType expectedType) {
|
||||||
return ExpressionTypingContext.newContext(this, trace, scope, dataFlowInfo, expectedType, oldContext.expressionPosition,
|
return ExpressionTypingContext.newContext(this, trace, scope, dataFlowInfo, expectedType, oldContext.expressionPosition,
|
||||||
oldContext.contextDependency, oldContext.resolutionResultsCache, oldContext.labelResolver,
|
oldContext.contextDependency, oldContext.resolutionResultsCache, oldContext.labelResolver,
|
||||||
oldContext.callResolverExtension);
|
oldContext.callResolverExtension, oldContext.isAnnotationContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -410,7 +410,7 @@ public class ExpressionTypingServices {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public CallResolverExtension createExtension(@NotNull JetScope scope) {
|
public CallResolverExtension createExtension(@NotNull JetScope scope, boolean isAnnotationContext) {
|
||||||
return extensionProvider.createExtension(scope == JetScope.EMPTY ? null : scope.getContainingDeclaration());
|
return extensionProvider.createExtension(scope == JetScope.EMPTY ? null : scope.getContainingDeclaration(), isAnnotationContext);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user