typescript 5.4.0-dev.20231213 → 5.4.0-dev.20231214

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,5 +27,5 @@ declare namespace Intl {
27
27
  * @param locale A list of String values for which to get the canonical locale names
28
28
  * @returns An array containing the canonical and validated locale names.
29
29
  */
30
- function getCanonicalLocales(locale?: string | string[]): string[];
30
+ function getCanonicalLocales(locale?: string | readonly string[]): string[];
31
31
  }
@@ -48,9 +48,9 @@ declare namespace Intl {
48
48
  }
49
49
 
50
50
  interface PluralRulesConstructor {
51
- new (locales?: string | string[], options?: PluralRulesOptions): PluralRules;
52
- (locales?: string | string[], options?: PluralRulesOptions): PluralRules;
53
- supportedLocalesOf(locales: string | string[], options?: { localeMatcher?: "lookup" | "best fit"; }): string[];
51
+ new (locales?: string | readonly string[], options?: PluralRulesOptions): PluralRules;
52
+ (locales?: string | readonly string[], options?: PluralRulesOptions): PluralRules;
53
+ supportedLocalesOf(locales: string | readonly string[], options?: { localeMatcher?: "lookup" | "best fit"; }): string[];
54
54
  }
55
55
 
56
56
  const PluralRules: PluralRulesConstructor;
package/lib/tsc.js CHANGED
@@ -18,7 +18,7 @@ and limitations under the License.
18
18
 
19
19
  // src/compiler/corePublic.ts
20
20
  var versionMajorMinor = "5.4";
21
- var version = `${versionMajorMinor}.0-dev.20231213`;
21
+ var version = `${versionMajorMinor}.0-dev.20231214`;
22
22
 
23
23
  // src/compiler/core.ts
24
24
  var emptyArray = [];
@@ -6672,6 +6672,7 @@ var Diagnostics = {
6672
6672
  A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values: diag(2863, 1 /* Error */, "A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values_2863", "A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values."),
6673
6673
  A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types: diag(2864, 1 /* Error */, "A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types_2864", "A class cannot implement a primitive type like '{0}'. It can only implement other named object types."),
6674
6674
  Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled: diag(2865, 1 /* Error */, "Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_2865", "Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled."),
6675
+ Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled: diag(2866, 1 /* Error */, "Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_w_2866", "Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled."),
6675
6676
  Import_declaration_0_is_using_private_name_1: diag(4e3, 1 /* Error */, "Import_declaration_0_is_using_private_name_1_4000", "Import declaration '{0}' is using private name '{1}'."),
6676
6677
  Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, 1 /* Error */, "Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002", "Type parameter '{0}' of exported class has or is using private name '{1}'."),
6677
6678
  Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, 1 /* Error */, "Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004", "Type parameter '{0}' of exported interface has or is using private name '{1}'."),
@@ -45345,6 +45346,7 @@ function createTypeChecker(host) {
45345
45346
  }
45346
45347
  if (nameNotFoundMessage) {
45347
45348
  addLazyDiagnostic(() => {
45349
+ var _a2;
45348
45350
  if (errorLocation && (meaning & 2 /* BlockScopedVariable */ || (meaning & 32 /* Class */ || meaning & 384 /* Enum */) && (meaning & 111551 /* Value */) === 111551 /* Value */)) {
45349
45351
  const exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result);
45350
45352
  if (exportOrLocalSymbol.flags & 2 /* BlockScopedVariable */ || exportOrLocalSymbol.flags & 32 /* Class */ || exportOrLocalSymbol.flags & 384 /* Enum */) {
@@ -45378,6 +45380,16 @@ function createTypeChecker(host) {
45378
45380
  );
45379
45381
  }
45380
45382
  }
45383
+ if (compilerOptions.isolatedModules && result && isInExternalModule && (meaning & 111551 /* Value */) === 111551 /* Value */) {
45384
+ const isGlobal = lookup(globals, name, meaning) === result;
45385
+ const nonValueSymbol = isGlobal && isSourceFile(lastLocation) && lastLocation.locals && lookup(lastLocation.locals, name, ~111551 /* Value */);
45386
+ if (nonValueSymbol) {
45387
+ const importDecl = (_a2 = nonValueSymbol.declarations) == null ? void 0 : _a2.find((d) => d.kind === 276 /* ImportSpecifier */ || d.kind === 273 /* ImportClause */ || d.kind === 274 /* NamespaceImport */ || d.kind === 271 /* ImportEqualsDeclaration */);
45388
+ if (importDecl && !isTypeOnlyImportDeclaration(importDecl)) {
45389
+ error(importDecl, Diagnostics.Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled, unescapeLeadingUnderscores(name));
45390
+ }
45391
+ }
45392
+ }
45381
45393
  });
45382
45394
  }
45383
45395
  return result;
@@ -47707,12 +47719,16 @@ function createTypeChecker(host) {
47707
47719
  }
47708
47720
  function hasVisibleDeclarations(symbol, shouldComputeAliasToMakeVisible) {
47709
47721
  let aliasesToMakeVisible;
47722
+ let bindingElementToMakeVisible;
47710
47723
  if (!every(filter(symbol.declarations, (d) => d.kind !== 80 /* Identifier */), getIsDeclarationVisible)) {
47711
47724
  return void 0;
47712
47725
  }
47713
- return { accessibility: 0 /* Accessible */, aliasesToMakeVisible };
47726
+ return { accessibility: 0 /* Accessible */, aliasesToMakeVisible, bindingElementToMakeVisible };
47714
47727
  function getIsDeclarationVisible(declaration) {
47715
47728
  var _a, _b;
47729
+ if (isBindingElement(declaration) && findAncestor(declaration, isParameter)) {
47730
+ bindingElementToMakeVisible = declaration;
47731
+ }
47716
47732
  if (!isDeclarationVisible(declaration)) {
47717
47733
  const anyImportSyntax = getAnyImportSyntax(declaration);
47718
47734
  if (anyImportSyntax && !hasSyntacticModifier(anyImportSyntax, 32 /* Export */) && // import clause without export
@@ -68960,7 +68976,7 @@ function createTypeChecker(host) {
68960
68976
  /*contextFlags*/
68961
68977
  void 0
68962
68978
  );
68963
- const inTupleContext = isSpreadIntoCallOrNew(node) || !!contextualType && someType(contextualType, isTupleLikeType);
68979
+ const inTupleContext = isSpreadIntoCallOrNew(node) || !!contextualType && someType(contextualType, (t) => isTupleLikeType(t) || isGenericMappedType(t) && !t.nameType && !!getHomomorphicTypeVariable(t.target || t));
68964
68980
  let hasOmittedExpression = false;
68965
68981
  for (let i = 0; i < elementCount; i++) {
68966
68982
  const e = elements[i];
@@ -107964,6 +107980,7 @@ function transformDeclarations(context) {
107964
107980
  let lateStatementReplacementMap;
107965
107981
  let suppressNewDiagnosticContexts;
107966
107982
  let exportedModulesFromDeclarationEmit;
107983
+ const usedBindingElementAliases = /* @__PURE__ */ new Map();
107967
107984
  const { factory: factory2 } = context;
107968
107985
  const host = context.getEmitHost();
107969
107986
  const symbolTracker = {
@@ -108020,7 +108037,7 @@ function transformDeclarations(context) {
108020
108037
  }
108021
108038
  function handleSymbolAccessibilityError(symbolAccessibilityResult) {
108022
108039
  if (symbolAccessibilityResult.accessibility === 0 /* Accessible */) {
108023
- if (symbolAccessibilityResult && symbolAccessibilityResult.aliasesToMakeVisible) {
108040
+ if (symbolAccessibilityResult.aliasesToMakeVisible) {
108024
108041
  if (!lateMarkedStatements) {
108025
108042
  lateMarkedStatements = symbolAccessibilityResult.aliasesToMakeVisible;
108026
108043
  } else {
@@ -108029,6 +108046,17 @@ function transformDeclarations(context) {
108029
108046
  }
108030
108047
  }
108031
108048
  }
108049
+ if (symbolAccessibilityResult.bindingElementToMakeVisible) {
108050
+ const bindingElement = symbolAccessibilityResult.bindingElementToMakeVisible;
108051
+ const parameter = findAncestor(bindingElement, isParameter);
108052
+ Debug.assert(parameter !== void 0);
108053
+ const parent = getOriginalNode(parameter.parent);
108054
+ let aliases = usedBindingElementAliases.get(parent);
108055
+ if (!aliases) {
108056
+ usedBindingElementAliases.set(parent, aliases = /* @__PURE__ */ new Map());
108057
+ }
108058
+ aliases.set(getOriginalNode(bindingElement), bindingElement.name);
108059
+ }
108032
108060
  } else {
108033
108061
  const errorInfo = getSymbolAccessibilityDiagnostic(symbolAccessibilityResult);
108034
108062
  if (errorInfo) {
@@ -108378,7 +108406,7 @@ function transformDeclarations(context) {
108378
108406
  if (elem.propertyName && isComputedPropertyName(elem.propertyName) && isEntityNameExpression(elem.propertyName.expression)) {
108379
108407
  checkEntityNameVisibility(elem.propertyName.expression, enclosingDeclaration);
108380
108408
  }
108381
- if (elem.propertyName && isIdentifier(elem.propertyName) && isIdentifier(elem.name) && !elem.symbol.isReferenced && !isIdentifierANonContextualKeyword(elem.propertyName)) {
108409
+ if (elem.propertyName && isIdentifier(elem.propertyName) && isIdentifier(elem.name) && !isIdentifierANonContextualKeyword(elem.propertyName)) {
108382
108410
  return factory2.updateBindingElement(
108383
108411
  elem,
108384
108412
  elem.dotDotDotToken,
@@ -108397,6 +108425,161 @@ function transformDeclarations(context) {
108397
108425
  );
108398
108426
  }
108399
108427
  }
108428
+ function ensureBindingAliasesInParameterList(input, updatedNode) {
108429
+ const original = getOriginalNode(input);
108430
+ const params = updatedNode.parameters;
108431
+ const aliases = usedBindingElementAliases.get(original);
108432
+ if (!aliases) {
108433
+ return updatedNode;
108434
+ }
108435
+ usedBindingElementAliases.delete(original);
108436
+ const newParams = map(params, addUsedBindingPatternsToParameter);
108437
+ const newParamsNodeArray = factory2.createNodeArray(newParams, params.hasTrailingComma);
108438
+ switch (updatedNode.kind) {
108439
+ case 174 /* MethodDeclaration */:
108440
+ return factory2.updateMethodDeclaration(
108441
+ updatedNode,
108442
+ updatedNode.modifiers,
108443
+ updatedNode.asteriskToken,
108444
+ updatedNode.name,
108445
+ updatedNode.questionToken,
108446
+ updatedNode.typeParameters,
108447
+ newParamsNodeArray,
108448
+ updatedNode.type,
108449
+ updatedNode.body
108450
+ );
108451
+ case 176 /* Constructor */:
108452
+ return factory2.updateConstructorDeclaration(
108453
+ updatedNode,
108454
+ updatedNode.modifiers,
108455
+ newParamsNodeArray,
108456
+ updatedNode.body
108457
+ );
108458
+ case 177 /* GetAccessor */:
108459
+ return factory2.updateGetAccessorDeclaration(
108460
+ updatedNode,
108461
+ updatedNode.modifiers,
108462
+ updatedNode.name,
108463
+ newParamsNodeArray,
108464
+ updatedNode.type,
108465
+ updatedNode.body
108466
+ );
108467
+ case 178 /* SetAccessor */:
108468
+ return factory2.updateSetAccessorDeclaration(
108469
+ updatedNode,
108470
+ updatedNode.modifiers,
108471
+ updatedNode.name,
108472
+ newParamsNodeArray,
108473
+ updatedNode.body
108474
+ );
108475
+ case 219 /* ArrowFunction */:
108476
+ return factory2.updateArrowFunction(
108477
+ updatedNode,
108478
+ updatedNode.modifiers,
108479
+ updatedNode.typeParameters,
108480
+ newParamsNodeArray,
108481
+ updatedNode.type,
108482
+ updatedNode.equalsGreaterThanToken,
108483
+ updatedNode.body
108484
+ );
108485
+ case 262 /* FunctionDeclaration */:
108486
+ return factory2.updateFunctionDeclaration(
108487
+ updatedNode,
108488
+ updatedNode.modifiers,
108489
+ updatedNode.asteriskToken,
108490
+ updatedNode.name,
108491
+ updatedNode.typeParameters,
108492
+ newParamsNodeArray,
108493
+ updatedNode.type,
108494
+ updatedNode.body
108495
+ );
108496
+ case 179 /* CallSignature */:
108497
+ return factory2.updateCallSignature(
108498
+ updatedNode,
108499
+ updatedNode.typeParameters,
108500
+ newParamsNodeArray,
108501
+ updatedNode.type
108502
+ );
108503
+ case 173 /* MethodSignature */:
108504
+ return factory2.updateMethodSignature(
108505
+ updatedNode,
108506
+ updatedNode.modifiers,
108507
+ updatedNode.name,
108508
+ updatedNode.questionToken,
108509
+ updatedNode.typeParameters,
108510
+ newParamsNodeArray,
108511
+ updatedNode.type
108512
+ );
108513
+ case 180 /* ConstructSignature */:
108514
+ return factory2.updateConstructSignature(
108515
+ updatedNode,
108516
+ updatedNode.typeParameters,
108517
+ newParamsNodeArray,
108518
+ updatedNode.type
108519
+ );
108520
+ case 184 /* FunctionType */:
108521
+ return factory2.updateFunctionTypeNode(
108522
+ updatedNode,
108523
+ updatedNode.typeParameters,
108524
+ newParamsNodeArray,
108525
+ updatedNode.type
108526
+ );
108527
+ case 185 /* ConstructorType */:
108528
+ return factory2.updateConstructorTypeNode(
108529
+ updatedNode,
108530
+ updatedNode.modifiers,
108531
+ updatedNode.typeParameters,
108532
+ newParamsNodeArray,
108533
+ updatedNode.type
108534
+ );
108535
+ default:
108536
+ Debug.assertNever(updatedNode);
108537
+ }
108538
+ function addUsedBindingPatternsToParameter(p) {
108539
+ return factory2.updateParameterDeclaration(
108540
+ p,
108541
+ p.modifiers,
108542
+ p.dotDotDotToken,
108543
+ addUsedBindingPatternAliases(p.name),
108544
+ p.questionToken,
108545
+ p.type,
108546
+ p.initializer
108547
+ );
108548
+ }
108549
+ function addUsedBindingPatternAliases(name) {
108550
+ if (name.kind === 80 /* Identifier */) {
108551
+ return name;
108552
+ } else {
108553
+ if (name.kind === 207 /* ArrayBindingPattern */) {
108554
+ return factory2.updateArrayBindingPattern(name, visitNodes2(name.elements, visitBindingElement, isArrayBindingElement));
108555
+ } else {
108556
+ return factory2.updateObjectBindingPattern(name, visitNodes2(name.elements, visitBindingElement, isBindingElement));
108557
+ }
108558
+ }
108559
+ function visitBindingElement(elem) {
108560
+ if (elem.kind === 232 /* OmittedExpression */) {
108561
+ return elem;
108562
+ }
108563
+ const usedAlias = aliases.get(getOriginalNode(elem));
108564
+ if (usedAlias && !elem.propertyName) {
108565
+ return factory2.updateBindingElement(
108566
+ elem,
108567
+ elem.dotDotDotToken,
108568
+ elem.name,
108569
+ usedAlias,
108570
+ elem.initializer
108571
+ );
108572
+ }
108573
+ return factory2.updateBindingElement(
108574
+ elem,
108575
+ elem.dotDotDotToken,
108576
+ elem.propertyName,
108577
+ addUsedBindingPatternAliases(elem.name),
108578
+ elem.initializer
108579
+ );
108580
+ }
108581
+ }
108582
+ }
108400
108583
  function ensureParameter(p, modifierMask, type) {
108401
108584
  let oldDiag;
108402
108585
  if (!suppressNewDiagnosticContexts) {
@@ -108783,19 +108966,25 @@ function transformDeclarations(context) {
108783
108966
  return cleanup(factory2.updateTypeReferenceNode(node, node.typeName, node.typeArguments));
108784
108967
  }
108785
108968
  case 180 /* ConstructSignature */:
108786
- return cleanup(factory2.updateConstructSignature(
108969
+ return cleanup(ensureBindingAliasesInParameterList(
108787
108970
  input,
108788
- ensureTypeParams(input, input.typeParameters),
108789
- updateParamsList(input, input.parameters),
108790
- ensureType(input, input.type)
108971
+ factory2.updateConstructSignature(
108972
+ input,
108973
+ ensureTypeParams(input, input.typeParameters),
108974
+ updateParamsList(input, input.parameters),
108975
+ ensureType(input, input.type)
108976
+ )
108791
108977
  ));
108792
108978
  case 176 /* Constructor */: {
108793
- const ctor = factory2.createConstructorDeclaration(
108794
- /*modifiers*/
108795
- ensureModifiers(input),
108796
- updateParamsList(input, input.parameters, 0 /* None */),
108797
- /*body*/
108798
- void 0
108979
+ const ctor = ensureBindingAliasesInParameterList(
108980
+ input,
108981
+ factory2.createConstructorDeclaration(
108982
+ /*modifiers*/
108983
+ ensureModifiers(input),
108984
+ updateParamsList(input, input.parameters, 0 /* None */),
108985
+ /*body*/
108986
+ void 0
108987
+ )
108799
108988
  );
108800
108989
  return cleanup(ctor);
108801
108990
  }
@@ -108806,17 +108995,20 @@ function transformDeclarations(context) {
108806
108995
  void 0
108807
108996
  );
108808
108997
  }
108809
- const sig = factory2.createMethodDeclaration(
108810
- ensureModifiers(input),
108811
- /*asteriskToken*/
108812
- void 0,
108813
- input.name,
108814
- input.questionToken,
108815
- ensureTypeParams(input, input.typeParameters),
108816
- updateParamsList(input, input.parameters),
108817
- ensureType(input, input.type),
108818
- /*body*/
108819
- void 0
108998
+ const sig = ensureBindingAliasesInParameterList(
108999
+ input,
109000
+ factory2.createMethodDeclaration(
109001
+ ensureModifiers(input),
109002
+ /*asteriskToken*/
109003
+ void 0,
109004
+ input.name,
109005
+ input.questionToken,
109006
+ ensureTypeParams(input, input.typeParameters),
109007
+ updateParamsList(input, input.parameters),
109008
+ ensureType(input, input.type),
109009
+ /*body*/
109010
+ void 0
109011
+ )
108820
109012
  );
108821
109013
  return cleanup(sig);
108822
109014
  }
@@ -108828,14 +109020,17 @@ function transformDeclarations(context) {
108828
109020
  );
108829
109021
  }
108830
109022
  const accessorType = getTypeAnnotationFromAllAccessorDeclarations(input, resolver.getAllAccessorDeclarations(input));
108831
- return cleanup(factory2.updateGetAccessorDeclaration(
109023
+ return cleanup(ensureBindingAliasesInParameterList(
108832
109024
  input,
108833
- ensureModifiers(input),
108834
- input.name,
108835
- updateAccessorParamsList(input, hasEffectiveModifier(input, 2 /* Private */)),
108836
- ensureType(input, accessorType),
108837
- /*body*/
108838
- void 0
109025
+ factory2.updateGetAccessorDeclaration(
109026
+ input,
109027
+ ensureModifiers(input),
109028
+ input.name,
109029
+ updateAccessorParamsList(input, hasEffectiveModifier(input, 2 /* Private */)),
109030
+ ensureType(input, accessorType),
109031
+ /*body*/
109032
+ void 0
109033
+ )
108839
109034
  ));
108840
109035
  }
108841
109036
  case 178 /* SetAccessor */: {
@@ -108845,13 +109040,16 @@ function transformDeclarations(context) {
108845
109040
  void 0
108846
109041
  );
108847
109042
  }
108848
- return cleanup(factory2.updateSetAccessorDeclaration(
109043
+ return cleanup(ensureBindingAliasesInParameterList(
108849
109044
  input,
108850
- ensureModifiers(input),
108851
- input.name,
108852
- updateAccessorParamsList(input, hasEffectiveModifier(input, 2 /* Private */)),
108853
- /*body*/
108854
- void 0
109045
+ factory2.updateSetAccessorDeclaration(
109046
+ input,
109047
+ ensureModifiers(input),
109048
+ input.name,
109049
+ updateAccessorParamsList(input, hasEffectiveModifier(input, 2 /* Private */)),
109050
+ /*body*/
109051
+ void 0
109052
+ )
108855
109053
  ));
108856
109054
  }
108857
109055
  case 172 /* PropertyDeclaration */:
@@ -108890,22 +109088,28 @@ function transformDeclarations(context) {
108890
109088
  void 0
108891
109089
  );
108892
109090
  }
108893
- return cleanup(factory2.updateMethodSignature(
109091
+ return cleanup(ensureBindingAliasesInParameterList(
108894
109092
  input,
108895
- ensureModifiers(input),
108896
- input.name,
108897
- input.questionToken,
108898
- ensureTypeParams(input, input.typeParameters),
108899
- updateParamsList(input, input.parameters),
108900
- ensureType(input, input.type)
109093
+ factory2.updateMethodSignature(
109094
+ input,
109095
+ ensureModifiers(input),
109096
+ input.name,
109097
+ input.questionToken,
109098
+ ensureTypeParams(input, input.typeParameters),
109099
+ updateParamsList(input, input.parameters),
109100
+ ensureType(input, input.type)
109101
+ )
108901
109102
  ));
108902
109103
  }
108903
109104
  case 179 /* CallSignature */: {
108904
- return cleanup(factory2.updateCallSignature(
109105
+ return cleanup(ensureBindingAliasesInParameterList(
108905
109106
  input,
108906
- ensureTypeParams(input, input.typeParameters),
108907
- updateParamsList(input, input.parameters),
108908
- ensureType(input, input.type)
109107
+ factory2.updateCallSignature(
109108
+ input,
109109
+ ensureTypeParams(input, input.typeParameters),
109110
+ updateParamsList(input, input.parameters),
109111
+ ensureType(input, input.type)
109112
+ )
108909
109113
  ));
108910
109114
  }
108911
109115
  case 181 /* IndexSignature */: {
@@ -108960,10 +109164,27 @@ function transformDeclarations(context) {
108960
109164
  return cleanup(factory2.updateConditionalTypeNode(input, checkType, extendsType, trueType, falseType));
108961
109165
  }
108962
109166
  case 184 /* FunctionType */: {
108963
- return cleanup(factory2.updateFunctionTypeNode(input, visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration), updateParamsList(input, input.parameters), Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))));
109167
+ return cleanup(ensureBindingAliasesInParameterList(
109168
+ input,
109169
+ factory2.updateFunctionTypeNode(
109170
+ input,
109171
+ visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration),
109172
+ updateParamsList(input, input.parameters),
109173
+ Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))
109174
+ )
109175
+ ));
108964
109176
  }
108965
109177
  case 185 /* ConstructorType */: {
108966
- return cleanup(factory2.updateConstructorTypeNode(input, ensureModifiers(input), visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration), updateParamsList(input, input.parameters), Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))));
109178
+ return cleanup(ensureBindingAliasesInParameterList(
109179
+ input,
109180
+ factory2.updateConstructorTypeNode(
109181
+ input,
109182
+ ensureModifiers(input),
109183
+ visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration),
109184
+ updateParamsList(input, input.parameters),
109185
+ Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))
109186
+ )
109187
+ ));
108967
109188
  }
108968
109189
  case 205 /* ImportType */: {
108969
109190
  if (!isLiteralImportTypeNode(input))
@@ -109148,17 +109369,20 @@ function transformDeclarations(context) {
109148
109369
  ));
109149
109370
  }
109150
109371
  case 262 /* FunctionDeclaration */: {
109151
- const clean2 = cleanup(factory2.updateFunctionDeclaration(
109372
+ const clean2 = cleanup(ensureBindingAliasesInParameterList(
109152
109373
  input,
109153
- ensureModifiers(input),
109154
- /*asteriskToken*/
109155
- void 0,
109156
- input.name,
109157
- ensureTypeParams(input, input.typeParameters),
109158
- updateParamsList(input, input.parameters),
109159
- ensureType(input, input.type),
109160
- /*body*/
109161
- void 0
109374
+ factory2.updateFunctionDeclaration(
109375
+ input,
109376
+ ensureModifiers(input),
109377
+ /*asteriskToken*/
109378
+ void 0,
109379
+ input.name,
109380
+ ensureTypeParams(input, input.typeParameters),
109381
+ updateParamsList(input, input.parameters),
109382
+ ensureType(input, input.type),
109383
+ /*body*/
109384
+ void 0
109385
+ )
109162
109386
  ));
109163
109387
  if (clean2 && resolver.isExpandoFunctionDeclaration(input) && shouldEmitFunctionProperties(input)) {
109164
109388
  const props = resolver.getPropertiesOfContainerFunction(input);