diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 24859d61129..4572fc4ca90 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -8481,7 +8481,7 @@ namespace ts { return getIntrinsicTagSymbol(node); } else { - return resolveEntityName(node.tagName, SymbolFlags.Value); + return checkExpression(node.tagName).symbol; } } diff --git a/tests/baselines/reference/jsxEsprimaFbTestSuite.errors.txt b/tests/baselines/reference/jsxEsprimaFbTestSuite.errors.txt index b40c2997b31..3a6059d8d07 100644 --- a/tests/baselines/reference/jsxEsprimaFbTestSuite.errors.txt +++ b/tests/baselines/reference/jsxEsprimaFbTestSuite.errors.txt @@ -4,12 +4,10 @@ tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(39,29): error TS1005: '{' tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(39,57): error TS1109: Expression expected. tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(39,58): error TS1109: Expression expected. tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(41,1): error TS1003: Identifier expected. -tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(41,8): error TS2503: Cannot find namespace 'a'. tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(41,12): error TS2657: JSX expressions must have one parent element -tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(43,10): error TS2503: Cannot find namespace 'a'. -==== tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx (9 errors) ==== +==== tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx (7 errors) ==== declare var React: any; declare var 日本語; declare var AbC_def; @@ -63,14 +61,10 @@ tests/cases/conformance/jsx/jsxEsprimaFbTestSuite.tsx(43,10): error TS2503: Cann ; ~ !!! error TS1003: Identifier expected. - ~ -!!! error TS2503: Cannot find namespace 'a'. ~ !!! error TS2657: JSX expressions must have one parent element ; - ~ -!!! error TS2503: Cannot find namespace 'a'. (
) < x; diff --git a/tests/baselines/reference/jsxInvalidEsprimaTestSuite.errors.txt b/tests/baselines/reference/jsxInvalidEsprimaTestSuite.errors.txt index 0a4c23c2f00..237c3399e88 100644 --- a/tests/baselines/reference/jsxInvalidEsprimaTestSuite.errors.txt +++ b/tests/baselines/reference/jsxInvalidEsprimaTestSuite.errors.txt @@ -24,7 +24,7 @@ tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(11,12): error TS2304: tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(11,16): error TS1109: Expression expected. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(12,2): error TS2304: Cannot find name 'a'. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(12,5): error TS1003: Identifier expected. -tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(12,10): error TS2503: Cannot find namespace 'a'. +tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(12,10): error TS2304: Cannot find name 'a'. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(12,13): error TS1005: '>' expected. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(12,14): error TS2304: Cannot find name 'c'. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(12,16): error TS1109: Expression expected. @@ -38,7 +38,7 @@ tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(14,8): error TS2304: tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(14,10): error TS1109: Expression expected. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(15,2): error TS2304: Cannot find name 'a'. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(15,4): error TS1003: Identifier expected. -tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(15,7): error TS2503: Cannot find namespace 'a'. +tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(15,7): error TS2304: Cannot find name 'a'. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(15,9): error TS1003: Identifier expected. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(16,3): error TS1003: Identifier expected. tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(16,4): error TS2304: Cannot find name 'foo'. @@ -135,7 +135,7 @@ tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(35,21): error TS1005: ~ !!! error TS1003: Identifier expected. ~ -!!! error TS2503: Cannot find namespace 'a'. +!!! error TS2304: Cannot find name 'a'. ~ !!! error TS1005: '>' expected. ~ @@ -166,7 +166,7 @@ tests/cases/conformance/jsx/jsxInvalidEsprimaTestSuite.tsx(35,21): error TS1005: ~ !!! error TS1003: Identifier expected. ~ -!!! error TS2503: Cannot find namespace 'a'. +!!! error TS2304: Cannot find name 'a'. ~ !!! error TS1003: Identifier expected. ; diff --git a/tests/baselines/reference/jsxReactTestSuite.symbols b/tests/baselines/reference/jsxReactTestSuite.symbols index 24ff3a1cf3d..1ee71370dbc 100644 --- a/tests/baselines/reference/jsxReactTestSuite.symbols +++ b/tests/baselines/reference/jsxReactTestSuite.symbols @@ -56,11 +56,9 @@ declare var hasOwnProperty:any; >div : Symbol(unknown) {foo}
{bar}
->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >foo : Symbol(foo, Decl(jsxReactTestSuite.tsx, 7, 11)) >br : Symbol(unknown) >bar : Symbol(bar, Decl(jsxReactTestSuite.tsx, 8, 11)) ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11))
>br : Symbol(unknown) @@ -70,20 +68,12 @@ declare var hasOwnProperty:any; ->Composite : Symbol(Composite, Decl(jsxReactTestSuite.tsx, 3, 11)) - {this.props.children} ; ->Composite : Symbol(Composite, Decl(jsxReactTestSuite.tsx, 3, 11)) ->Composite : Symbol(Composite, Decl(jsxReactTestSuite.tsx, 3, 11)) - ->Composite2 : Symbol(Composite2, Decl(jsxReactTestSuite.tsx, 4, 11)) - ; ->Composite : Symbol(Composite, Decl(jsxReactTestSuite.tsx, 3, 11)) var x = >x : Symbol(x, Decl(jsxReactTestSuite.tsx, 10, 11), Decl(jsxReactTestSuite.tsx, 35, 3)) @@ -174,7 +164,6 @@ var x = >hasOwnProperty : Symbol(unknown) ; ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >constructor : Symbol(unknown) ; @@ -182,7 +171,6 @@ var x = ; Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >x : Symbol(x, Decl(jsxReactTestSuite.tsx, 10, 11), Decl(jsxReactTestSuite.tsx, 35, 3)) >y : Symbol(unknown) @@ -190,8 +178,6 @@ var x = >z : Symbol(unknown) Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) - {...this.props} sound="moo" />; >sound : Symbol(unknown) @@ -199,7 +185,6 @@ var x = >font-face : Symbol(unknown) ; ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >x : Symbol(unknown) >y : Symbol(y, Decl(jsxReactTestSuite.tsx, 9, 11)) @@ -207,43 +192,34 @@ var x = >x-component : Symbol(unknown) ; ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >x : Symbol(x, Decl(jsxReactTestSuite.tsx, 10, 11), Decl(jsxReactTestSuite.tsx, 35, 3)) ; ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >x : Symbol(x, Decl(jsxReactTestSuite.tsx, 10, 11), Decl(jsxReactTestSuite.tsx, 35, 3)) >y : Symbol(unknown) ; ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >x : Symbol(x, Decl(jsxReactTestSuite.tsx, 10, 11), Decl(jsxReactTestSuite.tsx, 35, 3)) >y : Symbol(unknown) >z : Symbol(unknown) ; ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >x : Symbol(unknown) >y : Symbol(y, Decl(jsxReactTestSuite.tsx, 9, 11)) ; ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >x : Symbol(unknown) >y : Symbol(unknown) >z : Symbol(z, Decl(jsxReactTestSuite.tsx, 11, 11)) >z : Symbol(z, Decl(jsxReactTestSuite.tsx, 11, 11)) ->Child : Symbol(Child, Decl(jsxReactTestSuite.tsx, 5, 11)) ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) Text; ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) >x : Symbol(unknown) >z : Symbol(z, Decl(jsxReactTestSuite.tsx, 11, 11)) >y : Symbol(y, Decl(jsxReactTestSuite.tsx, 113, 27)) >z : Symbol(z, Decl(jsxReactTestSuite.tsx, 11, 11)) >z : Symbol(unknown) ->Component : Symbol(Component, Decl(jsxReactTestSuite.tsx, 2, 11)) diff --git a/tests/baselines/reference/reactNamespaceJSXEmit.symbols b/tests/baselines/reference/reactNamespaceJSXEmit.symbols index 3ca5b91e538..a0012cfd07a 100644 --- a/tests/baselines/reference/reactNamespaceJSXEmit.symbols +++ b/tests/baselines/reference/reactNamespaceJSXEmit.symbols @@ -17,7 +17,6 @@ declare var x: any; >data : Symbol(unknown) ; ->Bar : Symbol(Bar, Decl(reactNamespaceJSXEmit.tsx, 3, 11)) >x : Symbol(unknown) >x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 4, 11)) @@ -25,11 +24,9 @@ declare var x: any; >x-component : Symbol(unknown) ; ->Bar : Symbol(Bar, Decl(reactNamespaceJSXEmit.tsx, 3, 11)) >x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 4, 11)) ; ->Bar : Symbol(Bar, Decl(reactNamespaceJSXEmit.tsx, 3, 11)) >x : Symbol(x, Decl(reactNamespaceJSXEmit.tsx, 4, 11)) >y : Symbol(unknown) diff --git a/tests/baselines/reference/tsxExternalModuleEmit2.symbols b/tests/baselines/reference/tsxExternalModuleEmit2.symbols index ff5fdc49171..29d8d901979 100644 --- a/tests/baselines/reference/tsxExternalModuleEmit2.symbols +++ b/tests/baselines/reference/tsxExternalModuleEmit2.symbols @@ -18,15 +18,11 @@ declare var Foo, React; // Should see mod_1['default'] in emit here ; ->Foo : Symbol(Foo, Decl(app.tsx, 1, 11)) >handler : Symbol(unknown) >Main : Symbol(Main, Decl(app.tsx, 0, 6)) ->Foo : Symbol(Foo, Decl(app.tsx, 1, 11)) // Should see mod_1['default'] in emit here ; ->Foo : Symbol(Foo, Decl(app.tsx, 1, 11)) >Main : Symbol(Main, Decl(app.tsx, 0, 6)) ->Foo : Symbol(Foo, Decl(app.tsx, 1, 11)) diff --git a/tests/baselines/reference/tsxGenericArrowFunctionParsing.symbols b/tests/baselines/reference/tsxGenericArrowFunctionParsing.symbols index 85dec56b2f8..d2af8f5f32f 100644 --- a/tests/baselines/reference/tsxGenericArrowFunctionParsing.symbols +++ b/tests/baselines/reference/tsxGenericArrowFunctionParsing.symbols @@ -15,8 +15,6 @@ var T, T1, T2; // This is an element var x1 = () => {}; >x1 : Symbol(x1, Decl(file.tsx, 7, 3)) ->T : Symbol(T, Decl(file.tsx, 4, 3)) ->T : Symbol(T, Decl(file.tsx, 4, 3)) x1.isElement; >x1.isElement : Symbol(JSX.Element.isElement, Decl(file.tsx, 1, 20)) @@ -43,9 +41,7 @@ x3(); // This is an element var x4 = () => {}; >x4 : Symbol(x4, Decl(file.tsx, 19, 3)) ->T : Symbol(T, Decl(file.tsx, 4, 3)) >extends : Symbol(unknown) ->T : Symbol(T, Decl(file.tsx, 4, 3)) x4.isElement; >x4.isElement : Symbol(JSX.Element.isElement, Decl(file.tsx, 1, 20)) @@ -55,9 +51,7 @@ x4.isElement; // This is an element var x5 = () => {}; >x5 : Symbol(x5, Decl(file.tsx, 23, 3)) ->T : Symbol(T, Decl(file.tsx, 4, 3)) >extends : Symbol(unknown) ->T : Symbol(T, Decl(file.tsx, 4, 3)) x5.isElement; >x5.isElement : Symbol(JSX.Element.isElement, Decl(file.tsx, 1, 20)) diff --git a/tests/baselines/reference/tsxOpeningClosingNames.symbols b/tests/baselines/reference/tsxOpeningClosingNames.symbols index 985edbd2596..e61d209e231 100644 --- a/tests/baselines/reference/tsxOpeningClosingNames.symbols +++ b/tests/baselines/reference/tsxOpeningClosingNames.symbols @@ -16,6 +16,4 @@ declare module A.B.C { } foo ->D : Symbol(A.B.C.D, Decl(file.tsx, 5, 5)) ->D : Symbol(A.B.C.D, Decl(file.tsx, 5, 5)) diff --git a/tests/baselines/reference/tsxPreserveEmit1.symbols b/tests/baselines/reference/tsxPreserveEmit1.symbols index 7e4325fd640..612f5cff9b2 100644 --- a/tests/baselines/reference/tsxPreserveEmit1.symbols +++ b/tests/baselines/reference/tsxPreserveEmit1.symbols @@ -13,7 +13,6 @@ import Route = ReactRouter.Route; var routes1 = ; >routes1 : Symbol(routes1, Decl(test.tsx, 6, 3)) ->Route : Symbol(ReactRouter.Route, Decl(react.d.ts, 7, 4)) module M { >M : Symbol(M, Decl(test.tsx, 6, 24), Decl(test.tsx, 10, 1)) @@ -27,8 +26,6 @@ module M { // Should emit 'M.X' in both opening and closing tags var y = ; >y : Symbol(y, Decl(test.tsx, 13, 4)) ->X : Symbol(X, Decl(test.tsx, 9, 11)) ->X : Symbol(X, Decl(test.tsx, 9, 11)) } === tests/cases/conformance/jsx/react.d.ts === diff --git a/tests/baselines/reference/tsxPreserveEmit2.symbols b/tests/baselines/reference/tsxPreserveEmit2.symbols index 4013b2e35ea..e136cebbdf0 100644 --- a/tests/baselines/reference/tsxPreserveEmit2.symbols +++ b/tests/baselines/reference/tsxPreserveEmit2.symbols @@ -6,5 +6,4 @@ var Route: any; var routes1 = ; >routes1 : Symbol(routes1, Decl(test.tsx, 3, 3)) ->Route : Symbol(Route, Decl(test.tsx, 2, 3)) diff --git a/tests/baselines/reference/tsxReactEmit3.symbols b/tests/baselines/reference/tsxReactEmit3.symbols index cec45805c1e..3d6d6c43c14 100644 --- a/tests/baselines/reference/tsxReactEmit3.symbols +++ b/tests/baselines/reference/tsxReactEmit3.symbols @@ -13,11 +13,3 @@ declare var Foo, Bar, baz; >baz : Symbol(baz, Decl(test.tsx, 4, 21)) q s ; ->Foo : Symbol(Foo, Decl(test.tsx, 4, 11)) ->Bar : Symbol(Bar, Decl(test.tsx, 4, 16)) ->Bar : Symbol(Bar, Decl(test.tsx, 4, 16)) ->Bar : Symbol(Bar, Decl(test.tsx, 4, 16)) ->Bar : Symbol(Bar, Decl(test.tsx, 4, 16)) ->Bar : Symbol(Bar, Decl(test.tsx, 4, 16)) ->Foo : Symbol(Foo, Decl(test.tsx, 4, 11)) - diff --git a/tests/baselines/reference/tsxStatelessFunctionComponents3.symbols b/tests/baselines/reference/tsxStatelessFunctionComponents3.symbols index 4ce502c6a6a..43923213479 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponents3.symbols +++ b/tests/baselines/reference/tsxStatelessFunctionComponents3.symbols @@ -11,7 +11,7 @@ const Foo = (props: any) =>
; // Should be OK const foo = ; >foo : Symbol(foo, Decl(file.tsx, 5, 5)) ->Foo : Symbol(Foo, Decl(file.tsx, 3, 5)) +>Foo : Symbol((Anonymous function), Decl(file.tsx, 3, 11)) // Should be OK @@ -40,7 +40,7 @@ var App: React.StatelessComponent<{ children }> = ({children}) => ( >div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 927, 45)) ->MainMenu : Symbol(MainMenu, Decl(file.tsx, 9, 3)) +>MainMenu : Symbol(React.StatelessComponent, Decl(react.d.ts, 139, 5))
>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 927, 45))