@@ -1616,6 +1616,36 @@ namespace ts.tscWatch {
1616
1616
return files . slice ( 0 , 2 ) ;
1617
1617
}
1618
1618
} ) ;
1619
+
1620
+ it ( "Elides const enums correctly in incremental compilation" , ( ) => {
1621
+ const currentDirectory = "/user/someone/projects/myproject" ;
1622
+ const file1 : FileOrFolder = {
1623
+ path : `${ currentDirectory } /file1.ts` ,
1624
+ content : "export const enum E1 { V = 1 }"
1625
+ } ;
1626
+ const file2 : FileOrFolder = {
1627
+ path : `${ currentDirectory } /file2.ts` ,
1628
+ content : `import { E1 } from "./file1"; export const enum E2 { V = E1.V }`
1629
+ } ;
1630
+ const file3 : FileOrFolder = {
1631
+ path : `${ currentDirectory } /file3.ts` ,
1632
+ content : `import { E2 } from "./file2"; const v: E2 = E2.V;`
1633
+ } ;
1634
+ const strictAndEsModule = `"use strict";\nexports.__esModule = true;\n` ;
1635
+ verifyEmittedFileContents ( "\n" , [ file3 , file2 , file1 ] , [
1636
+ `${ strictAndEsModule } var v = 1 /* V */;\n` ,
1637
+ strictAndEsModule ,
1638
+ strictAndEsModule
1639
+ ] , modifyFiles ) ;
1640
+
1641
+ function modifyFiles ( files : FileOrFolderEmit [ ] , emittedFiles : EmittedFile [ ] ) {
1642
+ files [ 0 ] . content += `function foo2() { return 2; }` ;
1643
+ emittedFiles [ 0 ] . content += `function foo2() { return 2; }\n` ;
1644
+ emittedFiles [ 1 ] . shouldBeWritten = false ;
1645
+ emittedFiles [ 2 ] . shouldBeWritten = false ;
1646
+ return [ files [ 0 ] ] ;
1647
+ }
1648
+ } ) ;
1619
1649
} ) ;
1620
1650
1621
1651
describe ( "tsc-watch module resolution caching" , ( ) => {
0 commit comments