@@ -1993,7 +1993,7 @@ namespace ts {
1993
1993
if ( ownConfig . extendedConfigPath ) {
1994
1994
// copy the resolution stack so it is never reused between branches in potential diamond-problem scenarios.
1995
1995
resolutionStack = resolutionStack . concat ( [ resolvedPath ] ) ;
1996
- const extendedConfig = getExtendedConfig ( sourceFile ! , ownConfig . extendedConfigPath , host , basePath , resolutionStack , errors ) ;
1996
+ const extendedConfig = getExtendedConfig ( sourceFile , ownConfig . extendedConfigPath , host , basePath , resolutionStack , errors ) ;
1997
1997
if ( extendedConfig && isSuccessfulParsedTsconfig ( extendedConfig ) ) {
1998
1998
const baseRaw = extendedConfig . raw ;
1999
1999
const raw = ownConfig . raw ;
@@ -2134,7 +2134,7 @@ namespace ts {
2134
2134
}
2135
2135
2136
2136
function getExtendedConfig (
2137
- sourceFile : TsConfigSourceFile ,
2137
+ sourceFile : TsConfigSourceFile | undefined ,
2138
2138
extendedConfigPath : string ,
2139
2139
host : ParseConfigHost ,
2140
2140
basePath : string ,
@@ -2143,7 +2143,12 @@ namespace ts {
2143
2143
) : ParsedTsconfig | undefined {
2144
2144
const extendedResult = readJsonConfigFile ( extendedConfigPath , path => host . readFile ( path ) ) ;
2145
2145
if ( sourceFile ) {
2146
- ( sourceFile . extendedSourceFiles || ( sourceFile . extendedSourceFiles = [ ] ) ) . push ( extendedResult . fileName ) ;
2146
+ if ( sourceFile . extendedSourceFiles ) {
2147
+ pushIfUnique ( sourceFile . extendedSourceFiles , extendedResult . fileName ) ;
2148
+ }
2149
+ else {
2150
+ sourceFile . extendedSourceFiles = [ extendedResult . fileName ] ;
2151
+ }
2147
2152
}
2148
2153
if ( extendedResult . parseDiagnostics . length ) {
2149
2154
errors . push ( ...extendedResult . parseDiagnostics ) ;
@@ -2153,8 +2158,10 @@ namespace ts {
2153
2158
const extendedDirname = getDirectoryPath ( extendedConfigPath ) ;
2154
2159
const extendedConfig = parseConfig ( /*json*/ undefined , extendedResult , host , extendedDirname ,
2155
2160
getBaseFileName ( extendedConfigPath ) , resolutionStack , errors ) ;
2156
- if ( sourceFile ) {
2157
- sourceFile . extendedSourceFiles ! . push ( ...extendedResult . extendedSourceFiles ! ) ;
2161
+ if ( sourceFile && extendedResult . extendedSourceFiles ) {
2162
+ for ( const extended of extendedResult . extendedSourceFiles ) {
2163
+ pushIfUnique ( sourceFile . extendedSourceFiles ! , extended ) ;
2164
+ }
2158
2165
}
2159
2166
2160
2167
if ( isSuccessfulParsedTsconfig ( extendedConfig ) ) {
0 commit comments