diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingUtils.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingUtils.java index 084bd4a1a4a..36af72c7105 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingUtils.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ControlStructureTypingUtils.java @@ -189,23 +189,35 @@ public class ControlStructureTypingUtils { return function; } + public static class ControlStructureDataFlowInfo extends MutableDataFlowInfoForArguments { + public final Map dataFlowInfoForArgumentsMap; + + ControlStructureDataFlowInfo( + @NotNull DataFlowInfo initialDataFlowInfo, + @NotNull Map map + ) { + super(initialDataFlowInfo); + dataFlowInfoForArgumentsMap = map; + } + + + @Override + public void updateInfo(@NotNull ValueArgument valueArgument, @NotNull DataFlowInfo dataFlowInfo) { + dataFlowInfoForArgumentsMap.put(valueArgument, dataFlowInfo); + } + + @NotNull + @Override + public DataFlowInfo getInfo(@NotNull ValueArgument valueArgument) { + return dataFlowInfoForArgumentsMap.get(valueArgument); + } + } + private static MutableDataFlowInfoForArguments createIndependentDataFlowInfoForArgumentsForCall( @NotNull DataFlowInfo initialDataFlowInfo, - Map dataFlowInfoForArgumentsMap + @NotNull Map dataFlowInfoForArgumentsMap ) { - return new MutableDataFlowInfoForArguments(initialDataFlowInfo) { - - @Override - public void updateInfo(@NotNull ValueArgument valueArgument, @NotNull DataFlowInfo dataFlowInfo) { - dataFlowInfoForArgumentsMap.put(valueArgument, dataFlowInfo); - } - - @NotNull - @Override - public DataFlowInfo getInfo(@NotNull ValueArgument valueArgument) { - return dataFlowInfoForArgumentsMap.get(valueArgument); - } - }; + return new ControlStructureDataFlowInfo(initialDataFlowInfo, dataFlowInfoForArgumentsMap); } public static MutableDataFlowInfoForArguments createDataFlowInfoForArgumentsForIfCall(