1
1
import * as typeExpr from "./typeExpr" ;
2
2
import * as scanType from "./scanType" ;
3
+ import * as reservedWord from "./reservedWord" ;
3
4
4
5
/**
5
6
* 型を識別するためのID
@@ -502,13 +503,23 @@ const scanExpr = (expr: Expr, scanData: scanType.NodeJsCodeScanData): void => {
502
503
return ;
503
504
504
505
case ExprType . ObjectLiteral :
505
- for ( const [ , member ] of expr . memberList ) {
506
+ for ( const [ propertyName , member ] of expr . memberList ) {
507
+ reservedWord . checkUsingReservedWord (
508
+ "object literal property name" ,
509
+ "オブジェクトリテラルのプロパティ名" ,
510
+ propertyName
511
+ ) ;
506
512
scanExpr ( member , scanData ) ;
507
513
}
508
514
return ;
509
515
510
516
case ExprType . LambdaWithReturn :
511
517
for ( const oneParameter of expr . parameter ) {
518
+ reservedWord . checkUsingReservedWord (
519
+ "function parameter name" ,
520
+ "関数のパラメーター名" ,
521
+ oneParameter . name
522
+ ) ;
512
523
typeExpr . scan ( oneParameter . typeExpr , scanData ) ;
513
524
}
514
525
typeExpr . scan ( expr . returnType , scanData ) ;
@@ -517,16 +528,31 @@ const scanExpr = (expr: Expr, scanData: scanType.NodeJsCodeScanData): void => {
517
528
518
529
case ExprType . LambdaReturnVoid :
519
530
for ( const oneParameter of expr . parameter ) {
531
+ reservedWord . checkUsingReservedWord (
532
+ "function parameter name" ,
533
+ "関数のパラメーター名" ,
534
+ oneParameter . name
535
+ ) ;
520
536
typeExpr . scan ( oneParameter . typeExpr , scanData ) ;
521
537
}
522
538
scanExpr ( expr . body , scanData ) ;
523
539
return ;
524
540
525
541
case ExprType . GlobalVariable :
542
+ reservedWord . checkUsingReservedWord (
543
+ "global variable name" ,
544
+ "グローバル空間の変数名" ,
545
+ expr . name
546
+ ) ;
526
547
scanData . globalName . add ( expr . name ) ;
527
548
return ;
528
549
529
550
case ExprType . ImportedVariable :
551
+ reservedWord . checkUsingReservedWord (
552
+ "imported variable name" ,
553
+ "インポートした変数名" ,
554
+ expr . name
555
+ ) ;
530
556
scanData . importedModulePath . add ( expr . path ) ;
531
557
return ;
532
558
}
@@ -540,10 +566,20 @@ const scanNodeJsCode = (
540
566
importedModulePath : new Set ( )
541
567
} ;
542
568
for ( const exportTypeAlias of nodeJsCode . exportTypeAliasList ) {
569
+ reservedWord . checkUsingReservedWord (
570
+ "export type name" ,
571
+ "型の名前" ,
572
+ exportTypeAlias . name
573
+ ) ;
543
574
scanData . globalName . add ( exportTypeAlias . name ) ;
544
575
typeExpr . scan ( exportTypeAlias . typeExpr , scanData ) ;
545
576
}
546
577
for ( const exportVariable of nodeJsCode . exportVariableList ) {
578
+ reservedWord . checkUsingReservedWord (
579
+ "export variable name" ,
580
+ "変数名" ,
581
+ exportVariable . name
582
+ ) ;
547
583
scanData . globalName . add ( exportVariable . name ) ;
548
584
typeExpr . scan ( exportVariable . typeExpr , scanData ) ;
549
585
scanExpr ( exportVariable . expr , scanData ) ;
@@ -583,7 +619,7 @@ export const toNodeJsCodeAsTypeScript = (nodeJsCode: NodeJsCode): string => {
583
619
const importedModuleNameMapAndNextIdentiferIndex = createImportedModuleName (
584
620
scanData . importedModulePath ,
585
621
0 ,
586
- scanData . globalName
622
+ new Set ( [ ... scanData . globalName , ... reservedWord . reservedWordSet ] )
587
623
) ;
588
624
589
625
return (
0 commit comments