Files
react-native-devtools-frontend/node_modules/tsutils/util/control-flow.d.ts
T
Tim van der Lippe cf4ab40452 Update typescript-eslint to 4.15.0
This also fixes a bug in the PRESUBMIT that ensures that, whenever
we update typescript-eslint, we correctly rerun the full linter
check.

DISABLE_THIRD_PARTY_CHECK=NPM update
R=jacktfranklin@chromium.org

Bug: none
Change-Id: I016f73b26cd84cabf3171aba89c88a0d72820f1a
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2692165
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2021-02-12 15:42:37 +00:00

25 lines
1.2 KiB
TypeScript

import * as ts from 'typescript';
export declare function endsControlFlow(statement: ts.Statement | ts.BlockLike, checker?: ts.TypeChecker): boolean;
export declare type ControlFlowStatement = ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.ThrowStatement | ts.ExpressionStatement & {
expression: ts.CallExpression;
};
export interface ControlFlowEnd {
/**
* Statements that may end control flow at this statement.
* Does not contain control flow statements that jump only inside the statement, for example a `continue` inside a nested for loop.
*/
readonly statements: ReadonlyArray<ControlFlowStatement>;
/** `true` if control flow definitely ends. */
readonly end: boolean;
}
export declare function getControlFlowEnd(statement: ts.Statement | ts.BlockLike, checker?: ts.TypeChecker): ControlFlowEnd;
export declare enum SignatureEffect {
Never = 1,
Asserts = 2
}
/**
* Dermines whether a top level CallExpression has a control flow effect according to TypeScript's rules.
* This handles functions returning `never` and `asserts`.
*/
export declare function callExpressionAffectsControlFlow(node: ts.CallExpression, checker: ts.TypeChecker): SignatureEffect | undefined;