(node)
| 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 */) { |
no test coverage detected
searching dependent graphs…