add BindingUtilsPackage.isUnreachableCode

This commit is contained in:
Michael Nedzelsky
2014-08-29 01:40:16 +04:00
parent f5feb3bf33
commit 6e728852d0
3 changed files with 6 additions and 0 deletions
@@ -260,6 +260,7 @@ public class JetFlowInformationProvider {
private void reportUnreachableCode(@NotNull UnreachableCode unreachableCode) {
for (JetElement element : unreachableCode.getElements()) {
trace.report(UNREACHABLE_CODE.on(element, unreachableCode.getUnreachableTextRanges(element)));
trace.record(BindingContext.UNREACHABLE_CODE, element, true);
}
}
@@ -138,6 +138,7 @@ public interface BindingContext {
*/
WritableSlice<JetExpression, Boolean> PROCESSED = Slices.createSimpleSetSlice();
WritableSlice<JetElement, Boolean> USED_AS_EXPRESSION = Slices.createRemovableSetSlice();
WritableSlice<JetElement, Boolean> UNREACHABLE_CODE = Slices.createRemovableSetSlice();
WritableSlice<VariableDescriptor, CaptureKind> CAPTURED_IN_CLOSURE = new BasicWritableSlice<VariableDescriptor, CaptureKind>(DO_NOTHING);
@@ -46,6 +46,7 @@ public fun JetReturnExpression.getTargetFunctionDescriptor(context: BindingConte
public fun JetExpression.isUsedAsExpression(context: BindingContext): Boolean = context[BindingContext.USED_AS_EXPRESSION, this]!!
public fun JetExpression.isUsedAsStatement(context: BindingContext): Boolean = !isUsedAsExpression(context)
public fun <C : ResolutionContext<C>> ResolutionContext<C>.recordScopeAndDataFlowInfo(expression: JetExpression?) {
if (expression == null) return
@@ -57,3 +58,6 @@ public fun <C : ResolutionContext<C>> ResolutionContext<C>.recordScopeAndDataFlo
public fun BindingContext.getDataFlowInfo(expression: JetExpression?): DataFlowInfo =
expression?.let { this[BindingContext.EXPRESSION_DATA_FLOW_INFO, it] } ?: DataFlowInfo.EMPTY
public fun JetExpression.isUnreachableCode(context: BindingContext): Boolean = context[BindingContext.UNREACHABLE_CODE, this]!!