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

Function checkGrammarImportCallExpression

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

Source from the content-addressed store, hash-verified

89148 });
89149 }
89150 function checkGrammarImportCallExpression(node) {
89151 if (moduleKind === ts.ModuleKind.ES2015) {
89152 return grammarErrorOnNode(node, ts.Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext);
89153 }
89154 if (node.typeArguments) {
89155 return grammarErrorOnNode(node, ts.Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);
89156 }
89157 var nodeArguments = node.arguments;
89158 if (moduleKind !== ts.ModuleKind.ESNext && moduleKind !== ts.ModuleKind.NodeNext) {
89159 // We are allowed trailing comma after proposal-import-assertions.
89160 checkGrammarForDisallowedTrailingComma(nodeArguments);
89161 if (nodeArguments.length > 1) {
89162 var assertionArgument = nodeArguments[1];
89163 return grammarErrorOnNode(assertionArgument, ts.Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_or_nodenext);
89164 }
89165 }
89166 if (nodeArguments.length === 0 || nodeArguments.length > 2) {
89167 return grammarErrorOnNode(node, ts.Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_assertion_as_arguments);
89168 }
89169 // see: parseArgumentOrArrayLiteralElement...we use this function which parse arguments of callExpression to parse specifier for dynamic import.
89170 // parseArgumentOrArrayLiteralElement allows spread element to be in an argument list which is not allowed as specifier in dynamic import.
89171 var spreadElement = ts.find(nodeArguments, ts.isSpreadElement);
89172 if (spreadElement) {
89173 return grammarErrorOnNode(spreadElement, ts.Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element);
89174 }
89175 return false;
89176 }
89177 function findMatchingTypeReferenceOrTypeAliasReference(source, unionTarget) {
89178 var sourceObjectFlags = ts.getObjectFlags(source);
89179 if (sourceObjectFlags & (4 /* ObjectFlags.Reference */ | 16 /* ObjectFlags.Anonymous */) && unionTarget.flags & 1048576 /* TypeFlags.Union */) {

Callers 1

Calls 3

grammarErrorOnNodeFunction · 0.85
findMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…