Skip to content

Commit 8dc1747

Browse files
committed
Set symbol/flags only on (fresh) object spreads
If you spread any into an object, the type is any, which should not be changed.
1 parent c76a3a6 commit 8dc1747

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/compiler/checker.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11638,8 +11638,11 @@ namespace ts {
1163811638
if (propertiesArray.length > 0) {
1163911639
spread = getSpreadType(spread, createObjectLiteralType(), /*isFromObjectLiteral*/ true);
1164011640
}
11641-
spread.flags |= propagatedFlags;
11642-
spread.symbol = node.symbol;
11641+
if (spread.flags & TypeFlags.Object) {
11642+
// only set the symbol and flags if this is a (fresh) object type
11643+
spread.flags |= propagatedFlags;
11644+
spread.symbol = node.symbol;
11645+
}
1164311646
return spread;
1164411647
}
1164511648

0 commit comments

Comments
 (0)