From 32d80f322ee341ef22d27dbd5fe21764060c3c3e Mon Sep 17 00:00:00 2001 From: Dmitry Savvinov Date: Tue, 3 Oct 2017 15:02:29 +0300 Subject: [PATCH] Effects: add new slices in BindingContext ========== Effect System introduction: 4/18 --- .../src/org/jetbrains/kotlin/resolve/BindingContext.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java index 42082eaf848..30688697540 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/BindingContext.java @@ -24,6 +24,9 @@ import org.jetbrains.annotations.ReadOnly; import org.jetbrains.annotations.TestOnly; import org.jetbrains.kotlin.cfg.LeakingThisDescriptor; import org.jetbrains.kotlin.cfg.TailRecursionKind; +import org.jetbrains.kotlin.contracts.description.InvocationKind; +import org.jetbrains.kotlin.contracts.model.Computation; +import org.jetbrains.kotlin.contracts.model.Functor; import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.kotlin.name.FqName; @@ -102,6 +105,8 @@ public interface BindingContext { WritableSlice EXPRESSION_TYPE_INFO = new BasicWritableSlice<>(DO_NOTHING); WritableSlice DATA_FLOW_INFO_BEFORE = new BasicWritableSlice<>(DO_NOTHING); WritableSlice EXPECTED_EXPRESSION_TYPE = new BasicWritableSlice<>(DO_NOTHING); + WritableSlice EXPRESSION_EFFECTS = Slices.createSimpleSlice(); + WritableSlice FUNCTOR = Slices.createSimpleSlice(); WritableSlice EXPECTED_RETURN_TYPE = new BasicWritableSlice<>(DO_NOTHING); WritableSlice DATAFLOW_INFO_AFTER_CONDITION = Slices.createSimpleSlice(); WritableSlice BOUND_INITIALIZER_VALUE = Slices.createSimpleSlice(); @@ -213,6 +218,8 @@ public interface BindingContext { WritableSlice IS_UNINITIALIZED = Slices.createSimpleSetSlice(); WritableSlice MUST_BE_LATEINIT = Slices.createSimpleSetSlice(); + WritableSlice LAMBDA_INVOCATIONS = Slices.createSimpleSlice(); + WritableSlice BLOCK = new SetSlice(DO_NOTHING) { @Override public Boolean computeValue(SlicedMap map, KtLambdaExpression expression, Boolean isBlock, boolean valueNotFound) {