diff --git a/tests/baselines/reference/checkJsxChildrenProperty1.symbols b/tests/baselines/reference/checkJsxChildrenProperty1.symbols index 39b189b7eb4..d80a3b1e82b 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty1.symbols +++ b/tests/baselines/reference/checkJsxChildrenProperty1.symbols @@ -23,11 +23,11 @@ function Comp(p: Prop) { >Prop : Symbol(Prop, Decl(file.tsx, 0, 32)) return
{p.b}
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) >p.b : Symbol(Prop.b, Decl(file.tsx, 3, 14)) >p : Symbol(p, Decl(file.tsx, 8, 14)) >b : Symbol(Prop.b, Decl(file.tsx, 3, 14)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } // OK @@ -59,8 +59,8 @@ let k2 = >b : Symbol(b, Decl(file.tsx, 19, 16))
hi hi hi!
->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) ; >Comp : Symbol(Comp, Decl(file.tsx, 6, 1)) diff --git a/tests/baselines/reference/checkJsxChildrenProperty10.js b/tests/baselines/reference/checkJsxChildrenProperty10.js new file mode 100644 index 00000000000..f022b28f20c --- /dev/null +++ b/tests/baselines/reference/checkJsxChildrenProperty10.js @@ -0,0 +1,38 @@ +//// [file.tsx] +declare module JSX { + interface Element { } + interface ElementAttributesProperty { props: {} } + interface IntrinsicElements { + div: any; + h2: any; + h1: any; + } +} + +class Button { + props: {} + render() { + return (
My Button
) + } +} + +// OK +let k1 =

Hello

world

; +let k2 =

Hello

{(user: any) =>

{user.name}

}
; +let k3 =
{1} {"That is a number"}
; +let k4 = ; + +//// [file.jsx] +var Button = (function () { + function Button() { + } + Button.prototype.render = function () { + return (
My Button
); + }; + return Button; +}()); +// OK +var k1 =

Hello

world

; +var k2 =

Hello

{function (user) { return

{user.name}

; }}
; +var k3 =
{1} {"That is a number"}
; +var k4 = ; diff --git a/tests/baselines/reference/checkJsxChildrenProperty10.symbols b/tests/baselines/reference/checkJsxChildrenProperty10.symbols new file mode 100644 index 00000000000..bf054377fb1 --- /dev/null +++ b/tests/baselines/reference/checkJsxChildrenProperty10.symbols @@ -0,0 +1,73 @@ +=== tests/cases/conformance/jsx/file.tsx === +declare module JSX { +>JSX : Symbol(JSX, Decl(file.tsx, 0, 0)) + + interface Element { } +>Element : Symbol(Element, Decl(file.tsx, 0, 20)) + + interface ElementAttributesProperty { props: {} } +>ElementAttributesProperty : Symbol(ElementAttributesProperty, Decl(file.tsx, 1, 22)) +>props : Symbol(ElementAttributesProperty.props, Decl(file.tsx, 2, 38)) + + interface IntrinsicElements { +>IntrinsicElements : Symbol(IntrinsicElements, Decl(file.tsx, 2, 50)) + + div: any; +>div : Symbol(IntrinsicElements.div, Decl(file.tsx, 3, 30)) + + h2: any; +>h2 : Symbol(IntrinsicElements.h2, Decl(file.tsx, 4, 11)) + + h1: any; +>h1 : Symbol(IntrinsicElements.h1, Decl(file.tsx, 5, 10)) + } +} + +class Button { +>Button : Symbol(Button, Decl(file.tsx, 8, 1)) + + props: {} +>props : Symbol(Button.props, Decl(file.tsx, 10, 14)) + + render() { +>render : Symbol(Button.render, Decl(file.tsx, 11, 10)) + + return (
My Button
) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) + } +} + +// OK +let k1 =

Hello

world

; +>k1 : Symbol(k1, Decl(file.tsx, 18, 3)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(file.tsx, 5, 10)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(file.tsx, 5, 10)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) + +let k2 =

Hello

{(user: any) =>

{user.name}

}
; +>k2 : Symbol(k2, Decl(file.tsx, 19, 3)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>user : Symbol(user, Decl(file.tsx, 19, 34)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>user : Symbol(user, Decl(file.tsx, 19, 34)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) + +let k3 =
{1} {"That is a number"}
; +>k3 : Symbol(k3, Decl(file.tsx, 20, 3)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) + +let k4 = ; +>k4 : Symbol(k4, Decl(file.tsx, 21, 3)) +>Button : Symbol(Button, Decl(file.tsx, 8, 1)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>Button : Symbol(Button, Decl(file.tsx, 8, 1)) + diff --git a/tests/baselines/reference/checkJsxChildrenProperty10.types b/tests/baselines/reference/checkJsxChildrenProperty10.types new file mode 100644 index 00000000000..cee5995b851 --- /dev/null +++ b/tests/baselines/reference/checkJsxChildrenProperty10.types @@ -0,0 +1,89 @@ +=== tests/cases/conformance/jsx/file.tsx === +declare module JSX { +>JSX : any + + interface Element { } +>Element : Element + + interface ElementAttributesProperty { props: {} } +>ElementAttributesProperty : ElementAttributesProperty +>props : {} + + interface IntrinsicElements { +>IntrinsicElements : IntrinsicElements + + div: any; +>div : any + + h2: any; +>h2 : any + + h1: any; +>h1 : any + } +} + +class Button { +>Button : Button + + props: {} +>props : {} + + render() { +>render : () => JSX.Element + + return (
My Button
) +>(
My Button
) : JSX.Element +>
My Button
: JSX.Element +>div : any +>div : any + } +} + +// OK +let k1 =

Hello

world

; +>k1 : JSX.Element +>

Hello

world

: JSX.Element +>div : any +>

Hello

: JSX.Element +>h2 : any +>h2 : any +>

world

: JSX.Element +>h1 : any +>h1 : any +>div : any + +let k2 =

Hello

{(user: any) =>

{user.name}

}
; +>k2 : JSX.Element +>

Hello

{(user: any) =>

{user.name}

}
: JSX.Element +>div : any +>

Hello

: JSX.Element +>h2 : any +>h2 : any +>(user: any) =>

{user.name}

: (user: any) => JSX.Element +>user : any +>

{user.name}

: JSX.Element +>h2 : any +>user.name : any +>user : any +>name : any +>h2 : any +>div : any + +let k3 =
{1} {"That is a number"}
; +>k3 : JSX.Element +>
{1} {"That is a number"}
: JSX.Element +>div : any +>1 : 1 +>"That is a number" : "That is a number" +>div : any + +let k4 = ; +>k4 : JSX.Element +> : JSX.Element +>Button : typeof Button +>

Hello

: JSX.Element +>h2 : any +>h2 : any +>Button : typeof Button + diff --git a/tests/baselines/reference/checkJsxChildrenProperty11.js b/tests/baselines/reference/checkJsxChildrenProperty11.js new file mode 100644 index 00000000000..f022b28f20c --- /dev/null +++ b/tests/baselines/reference/checkJsxChildrenProperty11.js @@ -0,0 +1,38 @@ +//// [file.tsx] +declare module JSX { + interface Element { } + interface ElementAttributesProperty { props: {} } + interface IntrinsicElements { + div: any; + h2: any; + h1: any; + } +} + +class Button { + props: {} + render() { + return (
My Button
) + } +} + +// OK +let k1 =

Hello

world

; +let k2 =

Hello

{(user: any) =>

{user.name}

}
; +let k3 =
{1} {"That is a number"}
; +let k4 = ; + +//// [file.jsx] +var Button = (function () { + function Button() { + } + Button.prototype.render = function () { + return (
My Button
); + }; + return Button; +}()); +// OK +var k1 =

Hello

world

; +var k2 =

Hello

{function (user) { return

{user.name}

; }}
; +var k3 =
{1} {"That is a number"}
; +var k4 = ; diff --git a/tests/baselines/reference/checkJsxChildrenProperty11.symbols b/tests/baselines/reference/checkJsxChildrenProperty11.symbols new file mode 100644 index 00000000000..bf054377fb1 --- /dev/null +++ b/tests/baselines/reference/checkJsxChildrenProperty11.symbols @@ -0,0 +1,73 @@ +=== tests/cases/conformance/jsx/file.tsx === +declare module JSX { +>JSX : Symbol(JSX, Decl(file.tsx, 0, 0)) + + interface Element { } +>Element : Symbol(Element, Decl(file.tsx, 0, 20)) + + interface ElementAttributesProperty { props: {} } +>ElementAttributesProperty : Symbol(ElementAttributesProperty, Decl(file.tsx, 1, 22)) +>props : Symbol(ElementAttributesProperty.props, Decl(file.tsx, 2, 38)) + + interface IntrinsicElements { +>IntrinsicElements : Symbol(IntrinsicElements, Decl(file.tsx, 2, 50)) + + div: any; +>div : Symbol(IntrinsicElements.div, Decl(file.tsx, 3, 30)) + + h2: any; +>h2 : Symbol(IntrinsicElements.h2, Decl(file.tsx, 4, 11)) + + h1: any; +>h1 : Symbol(IntrinsicElements.h1, Decl(file.tsx, 5, 10)) + } +} + +class Button { +>Button : Symbol(Button, Decl(file.tsx, 8, 1)) + + props: {} +>props : Symbol(Button.props, Decl(file.tsx, 10, 14)) + + render() { +>render : Symbol(Button.render, Decl(file.tsx, 11, 10)) + + return (
My Button
) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) + } +} + +// OK +let k1 =

Hello

world

; +>k1 : Symbol(k1, Decl(file.tsx, 18, 3)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(file.tsx, 5, 10)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(file.tsx, 5, 10)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) + +let k2 =

Hello

{(user: any) =>

{user.name}

}
; +>k2 : Symbol(k2, Decl(file.tsx, 19, 3)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>user : Symbol(user, Decl(file.tsx, 19, 34)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>user : Symbol(user, Decl(file.tsx, 19, 34)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) + +let k3 =
{1} {"That is a number"}
; +>k3 : Symbol(k3, Decl(file.tsx, 20, 3)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30)) + +let k4 = ; +>k4 : Symbol(k4, Decl(file.tsx, 21, 3)) +>Button : Symbol(Button, Decl(file.tsx, 8, 1)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(file.tsx, 4, 11)) +>Button : Symbol(Button, Decl(file.tsx, 8, 1)) + diff --git a/tests/baselines/reference/checkJsxChildrenProperty11.types b/tests/baselines/reference/checkJsxChildrenProperty11.types new file mode 100644 index 00000000000..cee5995b851 --- /dev/null +++ b/tests/baselines/reference/checkJsxChildrenProperty11.types @@ -0,0 +1,89 @@ +=== tests/cases/conformance/jsx/file.tsx === +declare module JSX { +>JSX : any + + interface Element { } +>Element : Element + + interface ElementAttributesProperty { props: {} } +>ElementAttributesProperty : ElementAttributesProperty +>props : {} + + interface IntrinsicElements { +>IntrinsicElements : IntrinsicElements + + div: any; +>div : any + + h2: any; +>h2 : any + + h1: any; +>h1 : any + } +} + +class Button { +>Button : Button + + props: {} +>props : {} + + render() { +>render : () => JSX.Element + + return (
My Button
) +>(
My Button
) : JSX.Element +>
My Button
: JSX.Element +>div : any +>div : any + } +} + +// OK +let k1 =

Hello

world

; +>k1 : JSX.Element +>

Hello

world

: JSX.Element +>div : any +>

Hello

: JSX.Element +>h2 : any +>h2 : any +>

world

: JSX.Element +>h1 : any +>h1 : any +>div : any + +let k2 =

Hello

{(user: any) =>

{user.name}

}
; +>k2 : JSX.Element +>

Hello

{(user: any) =>

{user.name}

}
: JSX.Element +>div : any +>

Hello

: JSX.Element +>h2 : any +>h2 : any +>(user: any) =>

{user.name}

: (user: any) => JSX.Element +>user : any +>

{user.name}

: JSX.Element +>h2 : any +>user.name : any +>user : any +>name : any +>h2 : any +>div : any + +let k3 =
{1} {"That is a number"}
; +>k3 : JSX.Element +>
{1} {"That is a number"}
: JSX.Element +>div : any +>1 : 1 +>"That is a number" : "That is a number" +>div : any + +let k4 = ; +>k4 : JSX.Element +> : JSX.Element +>Button : typeof Button +>

Hello

: JSX.Element +>h2 : any +>h2 : any +>Button : typeof Button + diff --git a/tests/baselines/reference/checkJsxChildrenProperty3.symbols b/tests/baselines/reference/checkJsxChildrenProperty3.symbols index 2a1aca621e9..e2e8492156f 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty3.symbols +++ b/tests/baselines/reference/checkJsxChildrenProperty3.symbols @@ -61,11 +61,11 @@ function UserName0() { >user : Symbol(user, Decl(file.tsx, 22, 13))

{ user.Name }

->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) >user.Name : Symbol(IUser.Name, Decl(file.tsx, 2, 17)) >user : Symbol(user, Decl(file.tsx, 22, 13)) >Name : Symbol(IUser.Name, Decl(file.tsx, 2, 17)) ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) ) } @@ -85,11 +85,11 @@ function UserName1() { >user : Symbol(user, Decl(file.tsx, 33, 13))

{ user.Name }

->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) >user.Name : Symbol(IUser.Name, Decl(file.tsx, 2, 17)) >user : Symbol(user, Decl(file.tsx, 33, 13)) >Name : Symbol(IUser.Name, Decl(file.tsx, 2, 17)) ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) ) } diff --git a/tests/baselines/reference/checkJsxChildrenProperty6.symbols b/tests/baselines/reference/checkJsxChildrenProperty6.symbols index df48a53e37d..7935b8cb2fe 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty6.symbols +++ b/tests/baselines/reference/checkJsxChildrenProperty6.symbols @@ -29,8 +29,8 @@ class Button extends React.Component { >render : Symbol(Button.render, Decl(file.tsx, 8, 48)) return (
My Button
) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } @@ -39,8 +39,8 @@ function AnotherButton(p: any) { >p : Symbol(p, Decl(file.tsx, 14, 23)) return

Just Another Button

; ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) } function Comp(p: Prop) { @@ -49,11 +49,11 @@ function Comp(p: Prop) { >Prop : Symbol(Prop, Decl(file.tsx, 0, 32)) return
{p.b}
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) >p.b : Symbol(Prop.b, Decl(file.tsx, 3, 14)) >p : Symbol(p, Decl(file.tsx, 18, 14)) >b : Symbol(Prop.b, Decl(file.tsx, 3, 14)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } // Ok diff --git a/tests/baselines/reference/checkJsxChildrenProperty8.symbols b/tests/baselines/reference/checkJsxChildrenProperty8.symbols index 92c2e685e71..211009642bb 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty8.symbols +++ b/tests/baselines/reference/checkJsxChildrenProperty8.symbols @@ -29,8 +29,8 @@ class Button extends React.Component { >render : Symbol(Button.render, Decl(file.tsx, 8, 48)) return (
My Button
) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } @@ -39,8 +39,8 @@ function AnotherButton(p: any) { >p : Symbol(p, Decl(file.tsx, 14, 23)) return

Just Another Button

; ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) } function Comp(p: Prop) { @@ -49,11 +49,11 @@ function Comp(p: Prop) { >Prop : Symbol(Prop, Decl(file.tsx, 0, 32)) return
{p.b}
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) >p.b : Symbol(Prop.b, Decl(file.tsx, 3, 14)) >p : Symbol(p, Decl(file.tsx, 18, 14)) >b : Symbol(Prop.b, Decl(file.tsx, 3, 14)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } // OK diff --git a/tests/baselines/reference/checkJsxChildrenProperty9.symbols b/tests/baselines/reference/checkJsxChildrenProperty9.symbols index 38f680a7aeb..d37d8a1bfe6 100644 --- a/tests/baselines/reference/checkJsxChildrenProperty9.symbols +++ b/tests/baselines/reference/checkJsxChildrenProperty9.symbols @@ -5,26 +5,26 @@ import React = require('react'); // OK let k1 =

Hello

world

; >k1 : Symbol(k1, Decl(file.tsx, 3, 3)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2408, 48)) ->h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2408, 48)) ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2412, 48)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2412, 48)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) let k2 =

Hello

{(user: any) =>

{user.name}

}
; >k2 : Symbol(k2, Decl(file.tsx, 4, 3)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2408, 48)) ->h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2408, 48)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2412, 48)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2412, 48)) >user : Symbol(user, Decl(file.tsx, 4, 34)) ->h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2408, 48)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2412, 48)) >user : Symbol(user, Decl(file.tsx, 4, 34)) ->h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2408, 48)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>h2 : Symbol(JSX.IntrinsicElements.h2, Decl(react.d.ts, 2412, 48)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) let k3 =
{1} {"That is a number"}
; >k3 : Symbol(k3, Decl(file.tsx, 5, 3)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) diff --git a/tests/baselines/reference/tsxDefaultAttributesResolution1.symbols b/tests/baselines/reference/tsxDefaultAttributesResolution1.symbols index 900aa7cf842..fbe4d1bf5dc 100644 --- a/tests/baselines/reference/tsxDefaultAttributesResolution1.symbols +++ b/tests/baselines/reference/tsxDefaultAttributesResolution1.symbols @@ -19,8 +19,8 @@ class Poisoned extends React.Component { >render : Symbol(Poisoned.render, Decl(file.tsx, 5, 50)) return
Hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } diff --git a/tests/baselines/reference/tsxDefaultAttributesResolution2.symbols b/tests/baselines/reference/tsxDefaultAttributesResolution2.symbols index 766505b5518..15d4a04901f 100644 --- a/tests/baselines/reference/tsxDefaultAttributesResolution2.symbols +++ b/tests/baselines/reference/tsxDefaultAttributesResolution2.symbols @@ -19,8 +19,8 @@ class Poisoned extends React.Component { >render : Symbol(Poisoned.render, Decl(file.tsx, 5, 50)) return
Hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } diff --git a/tests/baselines/reference/tsxSpreadAttributesResolution1.symbols b/tests/baselines/reference/tsxSpreadAttributesResolution1.symbols index cc669b485e4..cb18cd27d62 100644 --- a/tests/baselines/reference/tsxSpreadAttributesResolution1.symbols +++ b/tests/baselines/reference/tsxSpreadAttributesResolution1.symbols @@ -12,8 +12,8 @@ class Poisoned extends React.Component<{}, {}> { >render : Symbol(Poisoned.render, Decl(file.tsx, 2, 48)) return
Hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } diff --git a/tests/baselines/reference/tsxSpreadAttributesResolution11.symbols b/tests/baselines/reference/tsxSpreadAttributesResolution11.symbols index f8c0bc4cf1f..230e7b25dc5 100644 --- a/tests/baselines/reference/tsxSpreadAttributesResolution11.symbols +++ b/tests/baselines/reference/tsxSpreadAttributesResolution11.symbols @@ -48,8 +48,8 @@ class OverWriteAttr extends React.Component { >render : Symbol(OverWriteAttr.render, Decl(file.tsx, 17, 55)) return
Hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } diff --git a/tests/baselines/reference/tsxSpreadAttributesResolution3.symbols b/tests/baselines/reference/tsxSpreadAttributesResolution3.symbols index ade152b687d..c136d72444d 100644 --- a/tests/baselines/reference/tsxSpreadAttributesResolution3.symbols +++ b/tests/baselines/reference/tsxSpreadAttributesResolution3.symbols @@ -23,8 +23,8 @@ class Poisoned extends React.Component { >render : Symbol(Poisoned.render, Decl(file.tsx, 7, 58)) return
Hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } diff --git a/tests/baselines/reference/tsxSpreadAttributesResolution4.symbols b/tests/baselines/reference/tsxSpreadAttributesResolution4.symbols index c6b44bcd428..6cb0486be61 100644 --- a/tests/baselines/reference/tsxSpreadAttributesResolution4.symbols +++ b/tests/baselines/reference/tsxSpreadAttributesResolution4.symbols @@ -23,8 +23,8 @@ class Poisoned extends React.Component { >render : Symbol(Poisoned.render, Decl(file.tsx, 7, 58)) return
Hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } @@ -56,8 +56,8 @@ class EmptyProp extends React.Component<{}, {}> { >render : Symbol(EmptyProp.render, Decl(file.tsx, 21, 49)) return
Default hi
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } diff --git a/tests/baselines/reference/tsxSpreadAttributesResolution7.symbols b/tests/baselines/reference/tsxSpreadAttributesResolution7.symbols index d3f967ca2e7..fd95004c914 100644 --- a/tests/baselines/reference/tsxSpreadAttributesResolution7.symbols +++ b/tests/baselines/reference/tsxSpreadAttributesResolution7.symbols @@ -22,8 +22,8 @@ class TextComponent extends React.Component { >render : Symbol(TextComponent.render, Decl(file.tsx, 5, 60)) return Some Text..; ->span : Symbol(JSX.IntrinsicElements.span, Decl(react.d.ts, 2458, 51)) ->span : Symbol(JSX.IntrinsicElements.span, Decl(react.d.ts, 2458, 51)) +>span : Symbol(JSX.IntrinsicElements.span, Decl(react.d.ts, 2462, 51)) +>span : Symbol(JSX.IntrinsicElements.span, Decl(react.d.ts, 2462, 51)) } } diff --git a/tests/baselines/reference/tsxSpreadAttributesResolution8.symbols b/tests/baselines/reference/tsxSpreadAttributesResolution8.symbols index 6bfe0932173..1d0429a1cd1 100644 --- a/tests/baselines/reference/tsxSpreadAttributesResolution8.symbols +++ b/tests/baselines/reference/tsxSpreadAttributesResolution8.symbols @@ -45,8 +45,8 @@ class OverWriteAttr extends React.Component { >render : Symbol(OverWriteAttr.render, Decl(file.tsx, 17, 55)) return
Hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } diff --git a/tests/baselines/reference/tsxSpreadAttributesResolution9.symbols b/tests/baselines/reference/tsxSpreadAttributesResolution9.symbols index ba9a28bfc1e..26bda335e4f 100644 --- a/tests/baselines/reference/tsxSpreadAttributesResolution9.symbols +++ b/tests/baselines/reference/tsxSpreadAttributesResolution9.symbols @@ -23,8 +23,8 @@ class Opt extends React.Component { >render : Symbol(Opt.render, Decl(file.tsx, 7, 51)) return
Hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } } diff --git a/tests/baselines/reference/tsxStatelessFunctionComponents3.symbols b/tests/baselines/reference/tsxStatelessFunctionComponents3.symbols index a75b5f30c81..842c8b7b5d9 100644 --- a/tests/baselines/reference/tsxStatelessFunctionComponents3.symbols +++ b/tests/baselines/reference/tsxStatelessFunctionComponents3.symbols @@ -5,7 +5,7 @@ import React = require('react'); const Foo = (props: any) =>
; >Foo : Symbol(Foo, Decl(file.tsx, 2, 5)) >props : Symbol(props, Decl(file.tsx, 2, 13)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) // Should be OK const foo = ; @@ -19,14 +19,14 @@ var MainMenu: React.StatelessComponent<{}> = (props) => (
>React : Symbol(React, Decl(file.tsx, 0, 0)) >StatelessComponent : Symbol(React.StatelessComponent, Decl(react.d.ts, 197, 40)) >props : Symbol(props, Decl(file.tsx, 8, 46)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45))

Main Menu

->h3 : Symbol(JSX.IntrinsicElements.h3, Decl(react.d.ts, 2409, 48)) ->h3 : Symbol(JSX.IntrinsicElements.h3, Decl(react.d.ts, 2409, 48)) +>h3 : Symbol(JSX.IntrinsicElements.h3, Decl(react.d.ts, 2413, 48)) +>h3 : Symbol(JSX.IntrinsicElements.h3, Decl(react.d.ts, 2413, 48))
); ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) var App: React.StatelessComponent<{ children }> = ({children}) => ( >App : Symbol(App, Decl(file.tsx, 12, 3)) @@ -36,12 +36,12 @@ var App: React.StatelessComponent<{ children }> = ({children}) => ( >children : Symbol(children, Decl(file.tsx, 12, 52))
->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) >MainMenu : Symbol(MainMenu, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) ); diff --git a/tests/baselines/reference/tsxUnionElementType1.symbols b/tests/baselines/reference/tsxUnionElementType1.symbols index da0639ac5f1..72b9d96dbe6 100644 --- a/tests/baselines/reference/tsxUnionElementType1.symbols +++ b/tests/baselines/reference/tsxUnionElementType1.symbols @@ -8,8 +8,8 @@ function SFC1(prop: { x: number }) { >x : Symbol(x, Decl(file.tsx, 2, 21)) return
hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) }; @@ -19,8 +19,8 @@ function SFC2(prop: { x: boolean }) { >x : Symbol(x, Decl(file.tsx, 6, 21)) return

World

; ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) } var SFCComp = SFC1 || SFC2; diff --git a/tests/baselines/reference/tsxUnionElementType5.symbols b/tests/baselines/reference/tsxUnionElementType5.symbols index e05f3deb9cc..394e530231d 100644 --- a/tests/baselines/reference/tsxUnionElementType5.symbols +++ b/tests/baselines/reference/tsxUnionElementType5.symbols @@ -6,16 +6,16 @@ function EmptySFC1() { >EmptySFC1 : Symbol(EmptySFC1, Decl(file.tsx, 0, 32)) return
hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } function EmptySFC2() { >EmptySFC2 : Symbol(EmptySFC2, Decl(file.tsx, 4, 1)) return
Hello
; ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) ->div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) +>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45)) } function SFC2(prop: { x: boolean }) { @@ -24,8 +24,8 @@ function SFC2(prop: { x: boolean }) { >x : Symbol(x, Decl(file.tsx, 10, 21)) return

World

; ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) ->h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2407, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) +>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react.d.ts, 2411, 47)) } var EmptySFCComp = EmptySFC1 || EmptySFC2; diff --git a/tests/baselines/reference/tsxUnionTypeComponent1.symbols b/tests/baselines/reference/tsxUnionTypeComponent1.symbols index ec57cfaa2de..81ebe5ec015 100644 --- a/tests/baselines/reference/tsxUnionTypeComponent1.symbols +++ b/tests/baselines/reference/tsxUnionTypeComponent1.symbols @@ -38,8 +38,8 @@ class MyComponent extends React.Component { }/> >MyComponent : Symbol(MyComponent, Decl(file.tsx, 4, 1)) >AnyComponent : Symbol(AnyComponent, Decl(file.tsx, 14, 12)) ->button : Symbol(JSX.IntrinsicElements.button, Decl(react.d.ts, 2383, 43)) ->button : Symbol(JSX.IntrinsicElements.button, Decl(react.d.ts, 2383, 43)) +>button : Symbol(JSX.IntrinsicElements.button, Decl(react.d.ts, 2387, 43)) +>button : Symbol(JSX.IntrinsicElements.button, Decl(react.d.ts, 2387, 43)) // Component Class as Props class MyButtonComponent extends React.Component<{},{}> { diff --git a/tests/cases/conformance/jsx/checkJsxChildrenProperty10.tsx b/tests/cases/conformance/jsx/checkJsxChildrenProperty10.tsx new file mode 100644 index 00000000000..f13f44567ff --- /dev/null +++ b/tests/cases/conformance/jsx/checkJsxChildrenProperty10.tsx @@ -0,0 +1,24 @@ +//@filename: file.tsx +//@jsx: preserve +declare module JSX { + interface Element { } + interface ElementAttributesProperty { props: {} } + interface IntrinsicElements { + div: any; + h2: any; + h1: any; + } +} + +class Button { + props: {} + render() { + return (
My Button
) + } +} + +// OK +let k1 =

Hello

world

; +let k2 =

Hello

{(user: any) =>

{user.name}

}
; +let k3 =
{1} {"That is a number"}
; +let k4 = ; \ No newline at end of file diff --git a/tests/cases/conformance/jsx/checkJsxChildrenProperty11.tsx b/tests/cases/conformance/jsx/checkJsxChildrenProperty11.tsx new file mode 100644 index 00000000000..a6fab6f506e --- /dev/null +++ b/tests/cases/conformance/jsx/checkJsxChildrenProperty11.tsx @@ -0,0 +1,25 @@ +//@filename: file.tsx +//@jsx: preserve +//@noImplicitAny: true +declare module JSX { + interface Element { } + interface ElementAttributesProperty { props: {} } + interface IntrinsicElements { + div: any; + h2: any; + h1: any; + } +} + +class Button { + props: {} + render() { + return (
My Button
) + } +} + +// OK +let k1 =

Hello

world

; +let k2 =

Hello

{(user: any) =>

{user.name}

}
; +let k3 =
{1} {"That is a number"}
; +let k4 = ; \ No newline at end of file diff --git a/tests/cases/fourslash/tscCompletionInFunctionExpressionOfChildrenCallback.ts b/tests/cases/fourslash/tsxCompletionInFunctionExpressionOfChildrenCallback.ts similarity index 89% rename from tests/cases/fourslash/tscCompletionInFunctionExpressionOfChildrenCallback.ts rename to tests/cases/fourslash/tsxCompletionInFunctionExpressionOfChildrenCallback.ts index 0a926e64ac0..911fa41470d 100644 --- a/tests/cases/fourslash/tscCompletionInFunctionExpressionOfChildrenCallback.ts +++ b/tests/cases/fourslash/tsxCompletionInFunctionExpressionOfChildrenCallback.ts @@ -27,5 +27,4 @@ //// } goTo.marker(); -debugger; -verify.completionListContains('Name'); \ No newline at end of file +verify.completionListIsEmpty(); \ No newline at end of file diff --git a/tests/cases/fourslash/tsxCompletionInFunctionExpressionOfChildrenCallback1.ts b/tests/cases/fourslash/tsxCompletionInFunctionExpressionOfChildrenCallback1.ts new file mode 100644 index 00000000000..491188115eb --- /dev/null +++ b/tests/cases/fourslash/tsxCompletionInFunctionExpressionOfChildrenCallback1.ts @@ -0,0 +1,32 @@ +/// +//@module: commonjs +//@jsx: preserve + +// @Filename: 1.tsx +//// declare module JSX { +//// interface Element { } +//// interface IntrinsicElements { +//// } +//// interface ElementAttributesProperty { +//// props: { children; } +//// } +//// } +//// interface IUser { +//// Name: string; +//// } +//// interface IFetchUserProps { +//// children: (user: IUser) => any; +//// } +//// function FetchUser(props: IFetchUserProps) { return undefined; } +//// function UserName() { +//// return ( +//// +//// { user => ( +////

{ user./**/ }

+//// )} +////
+//// ); +//// } + +goTo.marker(); +verify.completionListContains('Name'); \ No newline at end of file