Skip to content

Commit 18898e1

Browse files
committed
jsx-uses-react: support shorthand fragments
1 parent 128b38f commit 18898e1

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

lib/rules/jsx-uses-react.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,16 @@ module.exports = {
2525
create: function(context) {
2626
const pragma = pragmaUtil.getFromContext(context);
2727

28+
function handleOpeningElement() {
29+
context.markVariableAsUsed(pragma);
30+
}
2831
// --------------------------------------------------------------------------
2932
// Public
3033
// --------------------------------------------------------------------------
3134

3235
return {
33-
34-
JSXOpeningElement: function() {
35-
context.markVariableAsUsed(pragma);
36-
}
37-
36+
JSXOpeningElement: handleOpeningElement,
37+
JSXOpeningFragment: handleOpeningElement
3838
};
3939
}
4040
};

tests/lib/rules/jsx-uses-react.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ ruleTester.run('no-unused-vars', rule, {
3939
{code: '/*eslint jsx-uses-react:1*/ var React; <div />;'},
4040
{code: '/*eslint jsx-uses-react:1*/ var React; (function () { <div /> })();'},
4141
{code: '/*eslint jsx-uses-react:1*/ /** @jsx Foo */ var Foo; <div />;'},
42-
{code: '/*eslint jsx-uses-react:1*/ var Foo; <div />;', settings: settings}
42+
{code: '/*eslint jsx-uses-react:1*/ var Foo; <div />;', settings: settings},
43+
{code: '/*eslint jsx-uses-react:1*/ var React; <></>;', parser: 'babel-eslint'}
4344
],
4445
invalid: [{
4546
code: '/*eslint jsx-uses-react:1*/ var React;',
@@ -49,6 +50,12 @@ ruleTester.run('no-unused-vars', rule, {
4950
errors: [{message: '\'React\' is defined but never used.'}]
5051
}, {
5152
code: '/*eslint jsx-uses-react:1*/ var React; <div />;',
52-
errors: [{message: '\'React\' is defined but never used.'}], settings: settings
53+
errors: [{message: '\'React\' is defined but never used.'}],
54+
settings: settings
55+
}, {
56+
code: '/*eslint jsx-uses-react:1*/ var React; <></>;',
57+
parser: 'babel-eslint',
58+
errors: [{message: '\'React\' is defined but never used.'}],
59+
settings: settings
5360
}]
5461
});

0 commit comments

Comments
 (0)