babel-types lists JSXIdentifier as an Expression (#6960)
Currently, Babel is treating JSXIdentifier, JSXMemberExpression, and JSXEmptyExpression as expressions as well, which means Babel will for example incorrectly allow you to place these anywhere an expression is wanted. Closes #6851.
This commit is contained in:
parent
398bc43656
commit
f0e46772a6
@ -1262,7 +1262,7 @@ declare class BabelNodeTSTypeParameter extends BabelNode {
|
|||||||
name?: string;
|
name?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXEmptyExpression | BabelNodeJSXIdentifier | BabelNodeJSXMemberExpression | BabelNodeJSXFragment | BabelNodeParenthesizedExpression | BabelNodeAwaitExpression | BabelNodeBindExpression | BabelNodeImport | BabelNodeDoExpression | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression;
|
type BabelNodeExpression = BabelNodeArrayExpression | BabelNodeAssignmentExpression | BabelNodeBinaryExpression | BabelNodeCallExpression | BabelNodeConditionalExpression | BabelNodeFunctionExpression | BabelNodeIdentifier | BabelNodeStringLiteral | BabelNodeNumericLiteral | BabelNodeNullLiteral | BabelNodeBooleanLiteral | BabelNodeRegExpLiteral | BabelNodeLogicalExpression | BabelNodeMemberExpression | BabelNodeNewExpression | BabelNodeObjectExpression | BabelNodeSequenceExpression | BabelNodeThisExpression | BabelNodeUnaryExpression | BabelNodeUpdateExpression | BabelNodeArrowFunctionExpression | BabelNodeClassExpression | BabelNodeMetaProperty | BabelNodeSuper | BabelNodeTaggedTemplateExpression | BabelNodeTemplateLiteral | BabelNodeYieldExpression | BabelNodeTypeCastExpression | BabelNodeJSXElement | BabelNodeJSXFragment | BabelNodeParenthesizedExpression | BabelNodeAwaitExpression | BabelNodeBindExpression | BabelNodeImport | BabelNodeDoExpression | BabelNodeTSAsExpression | BabelNodeTSTypeAssertion | BabelNodeTSNonNullExpression;
|
||||||
type BabelNodeBinary = BabelNodeBinaryExpression | BabelNodeLogicalExpression;
|
type BabelNodeBinary = BabelNodeBinaryExpression | BabelNodeLogicalExpression;
|
||||||
type BabelNodeScopable = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression | BabelNodeForOfStatement | BabelNodeClassMethod;
|
type BabelNodeScopable = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeClassDeclaration | BabelNodeClassExpression | BabelNodeForOfStatement | BabelNodeClassMethod;
|
||||||
type BabelNodeBlockParent = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeForOfStatement | BabelNodeClassMethod;
|
type BabelNodeBlockParent = BabelNodeBlockStatement | BabelNodeCatchClause | BabelNodeDoWhileStatement | BabelNodeForInStatement | BabelNodeForStatement | BabelNodeFunctionDeclaration | BabelNodeFunctionExpression | BabelNodeProgram | BabelNodeObjectMethod | BabelNodeSwitchStatement | BabelNodeWhileStatement | BabelNodeArrowFunctionExpression | BabelNodeForOfStatement | BabelNodeClassMethod;
|
||||||
|
|||||||
@ -1111,7 +1111,7 @@ t.jSXEmptyExpression()
|
|||||||
|
|
||||||
See also `t.isJSXEmptyExpression(node, opts)` and `t.assertJSXEmptyExpression(node, opts)`.
|
See also `t.isJSXEmptyExpression(node, opts)` and `t.assertJSXEmptyExpression(node, opts)`.
|
||||||
|
|
||||||
Aliases: `JSX`, `Expression`
|
Aliases: `JSX`
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -1151,7 +1151,7 @@ t.jSXIdentifier(name)
|
|||||||
|
|
||||||
See also `t.isJSXIdentifier(node, opts)` and `t.assertJSXIdentifier(node, opts)`.
|
See also `t.isJSXIdentifier(node, opts)` and `t.assertJSXIdentifier(node, opts)`.
|
||||||
|
|
||||||
Aliases: `JSX`, `Expression`
|
Aliases: `JSX`
|
||||||
|
|
||||||
- `name`: `string` (required)
|
- `name`: `string` (required)
|
||||||
|
|
||||||
@ -1164,7 +1164,7 @@ t.jSXMemberExpression(object, property)
|
|||||||
|
|
||||||
See also `t.isJSXMemberExpression(node, opts)` and `t.assertJSXMemberExpression(node, opts)`.
|
See also `t.isJSXMemberExpression(node, opts)` and `t.assertJSXMemberExpression(node, opts)`.
|
||||||
|
|
||||||
Aliases: `JSX`, `Expression`
|
Aliases: `JSX`
|
||||||
|
|
||||||
- `object`: `JSXMemberExpression | JSXIdentifier` (required)
|
- `object`: `JSXMemberExpression | JSXIdentifier` (required)
|
||||||
- `property`: `JSXIdentifier` (required)
|
- `property`: `JSXIdentifier` (required)
|
||||||
|
|||||||
@ -65,7 +65,7 @@ defineType("JSXElement", {
|
|||||||
});
|
});
|
||||||
|
|
||||||
defineType("JSXEmptyExpression", {
|
defineType("JSXEmptyExpression", {
|
||||||
aliases: ["JSX", "Expression"],
|
aliases: ["JSX"],
|
||||||
});
|
});
|
||||||
|
|
||||||
defineType("JSXExpressionContainer", {
|
defineType("JSXExpressionContainer", {
|
||||||
@ -90,7 +90,7 @@ defineType("JSXSpreadChild", {
|
|||||||
|
|
||||||
defineType("JSXIdentifier", {
|
defineType("JSXIdentifier", {
|
||||||
builder: ["name"],
|
builder: ["name"],
|
||||||
aliases: ["JSX", "Expression"],
|
aliases: ["JSX"],
|
||||||
fields: {
|
fields: {
|
||||||
name: {
|
name: {
|
||||||
validate: assertValueType("string"),
|
validate: assertValueType("string"),
|
||||||
@ -100,7 +100,7 @@ defineType("JSXIdentifier", {
|
|||||||
|
|
||||||
defineType("JSXMemberExpression", {
|
defineType("JSXMemberExpression", {
|
||||||
visitor: ["object", "property"],
|
visitor: ["object", "property"],
|
||||||
aliases: ["JSX", "Expression"],
|
aliases: ["JSX"],
|
||||||
fields: {
|
fields: {
|
||||||
object: {
|
object: {
|
||||||
validate: assertNodeType("JSXMemberExpression", "JSXIdentifier"),
|
validate: assertNodeType("JSXMemberExpression", "JSXIdentifier"),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user