• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1namespace ts {
2    export function setTextRange<T extends TextRange>(range: T, location: TextRange | undefined): T {
3        return location ? setTextRangePosEnd(range, location.pos, location.end) : range;
4    }
5
6    export function canHaveModifiers(node: Node): node is HasModifiers {
7        const kind = node.kind;
8        return kind === SyntaxKind.TypeParameter
9            || kind === SyntaxKind.Parameter
10            || kind === SyntaxKind.PropertySignature
11            || kind === SyntaxKind.PropertyDeclaration
12            || kind === SyntaxKind.MethodSignature
13            || kind === SyntaxKind.MethodDeclaration
14            || kind === SyntaxKind.Constructor
15            || kind === SyntaxKind.GetAccessor
16            || kind === SyntaxKind.SetAccessor
17            || kind === SyntaxKind.IndexSignature
18            || kind === SyntaxKind.ConstructorType
19            || kind === SyntaxKind.FunctionExpression
20            || kind === SyntaxKind.ArrowFunction
21            || kind === SyntaxKind.ClassExpression
22            || kind === SyntaxKind.StructDeclaration
23            || kind === SyntaxKind.VariableStatement
24            || kind === SyntaxKind.FunctionDeclaration
25            || kind === SyntaxKind.ClassDeclaration
26            || kind === SyntaxKind.InterfaceDeclaration
27            || kind === SyntaxKind.TypeAliasDeclaration
28            || kind === SyntaxKind.EnumDeclaration
29            || kind === SyntaxKind.ModuleDeclaration
30            || kind === SyntaxKind.ImportEqualsDeclaration
31            || kind === SyntaxKind.ImportDeclaration
32            || kind === SyntaxKind.ExportAssignment
33            || kind === SyntaxKind.ExportDeclaration;
34    }
35
36    export function canHaveDecorators(node: Node): node is HasDecorators {
37        const kind = node.kind;
38        return kind === SyntaxKind.Parameter
39            || kind === SyntaxKind.PropertyDeclaration
40            || kind === SyntaxKind.MethodDeclaration
41            || kind === SyntaxKind.GetAccessor
42            || kind === SyntaxKind.SetAccessor
43            || kind === SyntaxKind.ClassExpression
44            || kind === SyntaxKind.ClassDeclaration
45            || kind === SyntaxKind.StructDeclaration;
46    }
47}