.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / tsutils / util / control-flow.d.ts
1 import * as ts from 'typescript';\r
2 export declare function endsControlFlow(statement: ts.Statement | ts.BlockLike, checker?: ts.TypeChecker): boolean;\r
3 export declare type ControlFlowStatement = ts.BreakStatement | ts.ContinueStatement | ts.ReturnStatement | ts.ThrowStatement | ts.ExpressionStatement & {\r
4     expression: ts.CallExpression;\r
5 };\r
6 export interface ControlFlowEnd {\r
7     /**\r
8      * Statements that may end control flow at this statement.\r
9      * Does not contain control flow statements that jump only inside the statement, for example a `continue` inside a nested for loop.\r
10      */\r
11     readonly statements: ReadonlyArray<ControlFlowStatement>;\r
12     /** `true` if control flow definitely ends. */\r
13     readonly end: boolean;\r
14 }\r
15 export declare function getControlFlowEnd(statement: ts.Statement | ts.BlockLike, checker?: ts.TypeChecker): ControlFlowEnd;\r
16 export declare enum SignatureEffect {\r
17     Never = 1,\r
18     Asserts = 2\r
19 }\r
20 /**\r
21  * Dermines whether a top level CallExpression has a control flow effect according to TypeScript's rules.\r
22  * This handles functions returning `never` and `asserts`.\r
23  */\r
24 export declare function callExpressionAffectsControlFlow(node: ts.CallExpression, checker: ts.TypeChecker): SignatureEffect | undefined;\r