File tree Expand file tree Collapse file tree 6 files changed +18
-17
lines changed
tests/baselines/reference/api Expand file tree Collapse file tree 6 files changed +18
-17
lines changed Original file line number Diff line number Diff line change @@ -16434,16 +16434,7 @@ namespace ts {
16434
16434
* Returns true iff React would emit this tag name as a string rather than an identifier or qualified name
16435
16435
*/
16436
16436
function isJsxIntrinsicIdentifier(tagName: JsxTagNameExpression): boolean {
16437
- // TODO (yuisu): comment
16438
- switch (tagName.kind) {
16439
- case SyntaxKind.PropertyAccessExpression:
16440
- case SyntaxKind.ThisKeyword:
16441
- return false;
16442
- case SyntaxKind.Identifier:
16443
- return isIntrinsicJsxName((<Identifier>tagName).escapedText);
16444
- default:
16445
- return Debug.fail();
16446
- }
16437
+ return tagName.kind === SyntaxKind.Identifier && isIntrinsicJsxName(tagName.escapedText);
16447
16438
}
16448
16439
16449
16440
function checkJsxAttribute(node: JsxAttribute, checkMode?: CheckMode) {
Original file line number Diff line number Diff line change @@ -2451,7 +2451,7 @@ namespace ts {
2451
2451
2452
2452
function emitJsxTagName ( node : JsxTagNameExpression ) {
2453
2453
if ( node . kind === SyntaxKind . Identifier ) {
2454
- emitExpression ( < Identifier > node ) ;
2454
+ emitExpression ( node ) ;
2455
2455
}
2456
2456
else {
2457
2457
emit ( node ) ;
Original file line number Diff line number Diff line change @@ -4314,9 +4314,9 @@ namespace ts {
4314
4314
// We can't just simply use parseLeftHandSideExpressionOrHigher because then we will start consider class,function etc as a keyword
4315
4315
// We only want to consider "this" as a primaryExpression
4316
4316
let expression : JsxTagNameExpression = token ( ) === SyntaxKind . ThisKeyword ?
4317
- parseTokenNode < PrimaryExpression > ( ) : parseIdentifierName ( ) ;
4317
+ parseTokenNode < ThisExpression > ( ) : parseIdentifierName ( ) ;
4318
4318
while ( parseOptional ( SyntaxKind . DotToken ) ) {
4319
- const propertyAccess : PropertyAccessExpression = < PropertyAccessExpression > createNode ( SyntaxKind . PropertyAccessExpression , expression . pos ) ;
4319
+ const propertyAccess : JsxTagNamePropertyAccess = < JsxTagNamePropertyAccess > createNode ( SyntaxKind . PropertyAccessExpression , expression . pos ) ;
4320
4320
propertyAccess . expression = expression ;
4321
4321
propertyAccess . name = parseRightSideOfDot ( /*allowIdentifierNames*/ true ) ;
4322
4322
expression = finishNode ( propertyAccess ) ;
@@ -7886,7 +7886,7 @@ namespace ts {
7886
7886
}
7887
7887
7888
7888
if ( lhs . kind === SyntaxKind . Identifier ) {
7889
- return ( < Identifier > lhs ) . escapedText === ( < Identifier > rhs ) . escapedText ;
7889
+ return lhs . escapedText === ( < Identifier > rhs ) . escapedText ;
7890
7890
}
7891
7891
7892
7892
if ( lhs . kind === SyntaxKind . ThisKeyword ) {
Original file line number Diff line number Diff line change @@ -1761,7 +1761,11 @@ namespace ts {
1761
1761
1762
1762
export type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute ;
1763
1763
1764
- export type JsxTagNameExpression = PrimaryExpression | PropertyAccessExpression ;
1764
+ export type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess ;
1765
+
1766
+ export interface JsxTagNamePropertyAccess extends PropertyAccessExpression {
1767
+ expression : JsxTagNameExpression ;
1768
+ }
1765
1769
1766
1770
export interface JsxAttributes extends ObjectLiteralExpressionBase < JsxAttributeLike > {
1767
1771
parent : JsxOpeningLikeElement ;
Original file line number Diff line number Diff line change @@ -1713,7 +1713,10 @@ declare namespace ts {
1713
1713
}
1714
1714
type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement;
1715
1715
type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute;
1716
- type JsxTagNameExpression = PrimaryExpression | PropertyAccessExpression;
1716
+ type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess;
1717
+ interface JsxTagNamePropertyAccess extends PropertyAccessExpression {
1718
+ expression: JsxTagNameExpression;
1719
+ }
1717
1720
interface JsxAttributes extends ObjectLiteralExpressionBase<JsxAttributeLike> {
1718
1721
parent: JsxOpeningLikeElement;
1719
1722
}
Original file line number Diff line number Diff line change @@ -1105,7 +1105,10 @@ declare namespace ts {
1105
1105
}
1106
1106
type JsxOpeningLikeElement = JsxSelfClosingElement | JsxOpeningElement ;
1107
1107
type JsxAttributeLike = JsxAttribute | JsxSpreadAttribute ;
1108
- type JsxTagNameExpression = PrimaryExpression | PropertyAccessExpression ;
1108
+ type JsxTagNameExpression = Identifier | ThisExpression | JsxTagNamePropertyAccess ;
1109
+ interface JsxTagNamePropertyAccess extends PropertyAccessExpression {
1110
+ expression : JsxTagNameExpression ;
1111
+ }
1109
1112
interface JsxAttributes extends ObjectLiteralExpressionBase < JsxAttributeLike > {
1110
1113
parent : JsxOpeningLikeElement ;
1111
1114
}
You can’t perform that action at this time.
0 commit comments