MCPcopy Index your code
hub / github.com/nodejs/node / checkGrammarModifiers

Function checkGrammarModifiers

test/fixtures/snapshot/typescript.js:87700–87962  ·  view source on GitHub ↗
(node)

Source from the content-addressed store, hash-verified

87698 return false;
87699 }
87700 function checkGrammarModifiers(node) {
87701 var quickResult = reportObviousModifierErrors(node);
87702 if (quickResult !== undefined) {
87703 return quickResult;
87704 }
87705 var lastStatic, lastDeclare, lastAsync, lastOverride;
87706 var flags = 0 /* ModifierFlags.None */;
87707 for (var _i = 0, _a = node.modifiers; _i < _a.length; _i++) {
87708 var modifier = _a[_i];
87709 if (modifier.kind !== 145 /* SyntaxKind.ReadonlyKeyword */) {
87710 if (node.kind === 166 /* SyntaxKind.PropertySignature */ || node.kind === 168 /* SyntaxKind.MethodSignature */) {
87711 return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_type_member, ts.tokenToString(modifier.kind));
87712 }
87713 if (node.kind === 176 /* SyntaxKind.IndexSignature */ && (modifier.kind !== 124 /* SyntaxKind.StaticKeyword */ || !ts.isClassLike(node.parent))) {
87714 return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_an_index_signature, ts.tokenToString(modifier.kind));
87715 }
87716 }
87717 if (modifier.kind !== 101 /* SyntaxKind.InKeyword */ && modifier.kind !== 144 /* SyntaxKind.OutKeyword */) {
87718 if (node.kind === 163 /* SyntaxKind.TypeParameter */) {
87719 return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_type_parameter, ts.tokenToString(modifier.kind));
87720 }
87721 }
87722 switch (modifier.kind) {
87723 case 85 /* SyntaxKind.ConstKeyword */:
87724 if (node.kind !== 260 /* SyntaxKind.EnumDeclaration */) {
87725 return grammarErrorOnNode(node, ts.Diagnostics.A_class_member_cannot_have_the_0_keyword, ts.tokenToString(85 /* SyntaxKind.ConstKeyword */));
87726 }
87727 break;
87728 case 159 /* SyntaxKind.OverrideKeyword */:
87729 // If node.kind === SyntaxKind.Parameter, checkParameter reports an error if it's not a parameter property.
87730 if (flags & 16384 /* ModifierFlags.Override */) {
87731 return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "override");
87732 }
87733 else if (flags & 2 /* ModifierFlags.Ambient */) {
87734 return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_be_used_with_1_modifier, "override", "declare");
87735 }
87736 else if (flags & 64 /* ModifierFlags.Readonly */) {
87737 return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "override", "readonly");
87738 }
87739 else if (flags & 256 /* ModifierFlags.Async */) {
87740 return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "override", "async");
87741 }
87742 flags |= 16384 /* ModifierFlags.Override */;
87743 lastOverride = modifier;
87744 break;
87745 case 123 /* SyntaxKind.PublicKeyword */:
87746 case 122 /* SyntaxKind.ProtectedKeyword */:
87747 case 121 /* SyntaxKind.PrivateKeyword */:
87748 var text = visibilityToString(ts.modifierToFlag(modifier.kind));
87749 if (flags & 28 /* ModifierFlags.AccessibilityModifier */) {
87750 return grammarErrorOnNode(modifier, ts.Diagnostics.Accessibility_modifier_already_seen);
87751 }
87752 else if (flags & 16384 /* ModifierFlags.Override */) {
87753 return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "override");
87754 }
87755 else if (flags & 32 /* ModifierFlags.Static */) {
87756 return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "static");
87757 }

Callers 2

checkTypeParameterFunction · 0.85

Calls 4

grammarErrorOnNodeFunction · 0.85
visibilityToStringFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…