Update baselines and tests (2)

This commit is contained in:
Kanchalai Tanglertsampan
2017-04-17 13:00:38 -07:00
parent dbf2a96a7e
commit 9a23b75f05
28 changed files with 555 additions and 75 deletions

View File

@@ -23,11 +23,11 @@ function Comp(p: Prop) {
>Prop : Symbol(Prop, Decl(file.tsx, 0, 32))
return <div>{p.b}</div>;
>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))
<div>hi hi hi!</div>
>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>;
>Comp : Symbol(Comp, Decl(file.tsx, 6, 1))

View File

@@ -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 (<div>My Button</div>)
}
}
// OK
let k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
let k2 = <div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div>;
let k3 = <div> {1} {"That is a number"} </div>;
let k4 = <Button> <h2> Hello </h2> </Button>;
//// [file.jsx]
var Button = (function () {
function Button() {
}
Button.prototype.render = function () {
return (<div>My Button</div>);
};
return Button;
}());
// OK
var k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
var k2 = <div> <h2> Hello </h2> {function (user) { return <h2>{user.name}</h2>; }}</div>;
var k3 = <div> {1} {"That is a number"} </div>;
var k4 = <Button> <h2> Hello </h2> </Button>;

View File

@@ -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 (<div>My Button</div>)
>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30))
>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30))
}
}
// OK
let k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
>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 = <div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div>;
>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 = <div> {1} {"That is a number"} </div>;
>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 = <Button> <h2> Hello </h2> </Button>;
>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))

View File

@@ -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 (<div>My Button</div>)
>(<div>My Button</div>) : JSX.Element
><div>My Button</div> : JSX.Element
>div : any
>div : any
}
}
// OK
let k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
>k1 : JSX.Element
><div> <h2> Hello </h2> <h1> world </h1></div> : JSX.Element
>div : any
><h2> Hello </h2> : JSX.Element
>h2 : any
>h2 : any
><h1> world </h1> : JSX.Element
>h1 : any
>h1 : any
>div : any
let k2 = <div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div>;
>k2 : JSX.Element
><div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div> : JSX.Element
>div : any
><h2> Hello </h2> : JSX.Element
>h2 : any
>h2 : any
>(user: any) => <h2>{user.name}</h2> : (user: any) => JSX.Element
>user : any
><h2>{user.name}</h2> : JSX.Element
>h2 : any
>user.name : any
>user : any
>name : any
>h2 : any
>div : any
let k3 = <div> {1} {"That is a number"} </div>;
>k3 : JSX.Element
><div> {1} {"That is a number"} </div> : JSX.Element
>div : any
>1 : 1
>"That is a number" : "That is a number"
>div : any
let k4 = <Button> <h2> Hello </h2> </Button>;
>k4 : JSX.Element
><Button> <h2> Hello </h2> </Button> : JSX.Element
>Button : typeof Button
><h2> Hello </h2> : JSX.Element
>h2 : any
>h2 : any
>Button : typeof Button

View File

@@ -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 (<div>My Button</div>)
}
}
// OK
let k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
let k2 = <div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div>;
let k3 = <div> {1} {"That is a number"} </div>;
let k4 = <Button> <h2> Hello </h2> </Button>;
//// [file.jsx]
var Button = (function () {
function Button() {
}
Button.prototype.render = function () {
return (<div>My Button</div>);
};
return Button;
}());
// OK
var k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
var k2 = <div> <h2> Hello </h2> {function (user) { return <h2>{user.name}</h2>; }}</div>;
var k3 = <div> {1} {"That is a number"} </div>;
var k4 = <Button> <h2> Hello </h2> </Button>;

View File

@@ -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 (<div>My Button</div>)
>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30))
>div : Symbol(JSX.IntrinsicElements.div, Decl(file.tsx, 3, 30))
}
}
// OK
let k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
>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 = <div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div>;
>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 = <div> {1} {"That is a number"} </div>;
>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 = <Button> <h2> Hello </h2> </Button>;
>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))

View File

@@ -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 (<div>My Button</div>)
>(<div>My Button</div>) : JSX.Element
><div>My Button</div> : JSX.Element
>div : any
>div : any
}
}
// OK
let k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
>k1 : JSX.Element
><div> <h2> Hello </h2> <h1> world </h1></div> : JSX.Element
>div : any
><h2> Hello </h2> : JSX.Element
>h2 : any
>h2 : any
><h1> world </h1> : JSX.Element
>h1 : any
>h1 : any
>div : any
let k2 = <div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div>;
>k2 : JSX.Element
><div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div> : JSX.Element
>div : any
><h2> Hello </h2> : JSX.Element
>h2 : any
>h2 : any
>(user: any) => <h2>{user.name}</h2> : (user: any) => JSX.Element
>user : any
><h2>{user.name}</h2> : JSX.Element
>h2 : any
>user.name : any
>user : any
>name : any
>h2 : any
>div : any
let k3 = <div> {1} {"That is a number"} </div>;
>k3 : JSX.Element
><div> {1} {"That is a number"} </div> : JSX.Element
>div : any
>1 : 1
>"That is a number" : "That is a number"
>div : any
let k4 = <Button> <h2> Hello </h2> </Button>;
>k4 : JSX.Element
><Button> <h2> Hello </h2> </Button> : JSX.Element
>Button : typeof Button
><h2> Hello </h2> : JSX.Element
>h2 : any
>h2 : any
>Button : typeof Button

View File

@@ -61,11 +61,11 @@ function UserName0() {
>user : Symbol(user, Decl(file.tsx, 22, 13))
<h1>{ user.Name }</h1>
>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))
) }
</FetchUser>
@@ -85,11 +85,11 @@ function UserName1() {
>user : Symbol(user, Decl(file.tsx, 33, 13))
<h1>{ user.Name }</h1>
>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))
) }
</FetchUser>

View File

@@ -29,8 +29,8 @@ class Button extends React.Component<any, any> {
>render : Symbol(Button.render, Decl(file.tsx, 8, 48))
return (<div>My Button</div>)
>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 <h1>Just Another Button</h1>;
>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 <div>{p.b}</div>;
>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

View File

@@ -29,8 +29,8 @@ class Button extends React.Component<any, any> {
>render : Symbol(Button.render, Decl(file.tsx, 8, 48))
return (<div>My Button</div>)
>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 <h1>Just Another Button</h1>;
>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 <div>{p.b}</div>;
>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

View File

@@ -5,26 +5,26 @@ import React = require('react');
// OK
let k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
>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 = <div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div>;
>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 = <div> {1} {"That is a number"} </div>;
>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))

View File

@@ -19,8 +19,8 @@ class Poisoned extends React.Component<Prop, {}> {
>render : Symbol(Poisoned.render, Decl(file.tsx, 5, 50))
return <div>Hello</div>;
>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))
}
}

View File

@@ -19,8 +19,8 @@ class Poisoned extends React.Component<Prop, {}> {
>render : Symbol(Poisoned.render, Decl(file.tsx, 5, 50))
return <div>Hello</div>;
>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))
}
}

View File

@@ -12,8 +12,8 @@ class Poisoned extends React.Component<{}, {}> {
>render : Symbol(Poisoned.render, Decl(file.tsx, 2, 48))
return <div>Hello</div>;
>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))
}
}

View File

@@ -48,8 +48,8 @@ class OverWriteAttr extends React.Component<Prop, {}> {
>render : Symbol(OverWriteAttr.render, Decl(file.tsx, 17, 55))
return <div>Hello</div>;
>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))
}
}

View File

@@ -23,8 +23,8 @@ class Poisoned extends React.Component<PoisonedProp, {}> {
>render : Symbol(Poisoned.render, Decl(file.tsx, 7, 58))
return <div>Hello</div>;
>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))
}
}

View File

@@ -23,8 +23,8 @@ class Poisoned extends React.Component<PoisonedProp, {}> {
>render : Symbol(Poisoned.render, Decl(file.tsx, 7, 58))
return <div>Hello</div>;
>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 <div>Default hi</div>;
>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))
}
}

View File

@@ -22,8 +22,8 @@ class TextComponent extends React.Component<TextProps, {}> {
>render : Symbol(TextComponent.render, Decl(file.tsx, 5, 60))
return <span>Some Text..</span>;
>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))
}
}

View File

@@ -45,8 +45,8 @@ class OverWriteAttr extends React.Component<Prop, {}> {
>render : Symbol(OverWriteAttr.render, Decl(file.tsx, 17, 55))
return <div>Hello</div>;
>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))
}
}

View File

@@ -23,8 +23,8 @@ class Opt extends React.Component<OptionProp, {}> {
>render : Symbol(Opt.render, Decl(file.tsx, 7, 51))
return <div>Hello</div>;
>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))
}
}

View File

@@ -5,7 +5,7 @@ import React = require('react');
const Foo = (props: any) => <div/>;
>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 = <Foo />;
@@ -19,14 +19,14 @@ var MainMenu: React.StatelessComponent<{}> = (props) => (<div>
>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))
<h3>Main Menu</h3>
>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>);
>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 >
>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45))
>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45))
<MainMenu/>
>MainMenu : Symbol(MainMenu, Decl(file.tsx, 8, 3))
</div>
>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2397, 45))
>div : Symbol(JSX.IntrinsicElements.div, Decl(react.d.ts, 2401, 45))
);

View File

@@ -8,8 +8,8 @@ function SFC1(prop: { x: number }) {
>x : Symbol(x, Decl(file.tsx, 2, 21))
return <div>hello</div>;
>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 <h1>World </h1>;
>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;

View File

@@ -6,16 +6,16 @@ function EmptySFC1() {
>EmptySFC1 : Symbol(EmptySFC1, Decl(file.tsx, 0, 32))
return <div>hello</div>;
>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 <div>Hello</div>;
>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 <h1>World</h1>;
>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;

View File

@@ -38,8 +38,8 @@ class MyComponent extends React.Component<ComponentProps, {}> {
<MyComponent AnyComponent={() => <button>test</button>}/>
>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<{},{}> {

View File

@@ -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 (<div>My Button</div>)
}
}
// OK
let k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
let k2 = <div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div>;
let k3 = <div> {1} {"That is a number"} </div>;
let k4 = <Button> <h2> Hello </h2> </Button>;

View File

@@ -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 (<div>My Button</div>)
}
}
// OK
let k1 = <div> <h2> Hello </h2> <h1> world </h1></div>;
let k2 = <div> <h2> Hello </h2> {(user: any) => <h2>{user.name}</h2>}</div>;
let k3 = <div> {1} {"That is a number"} </div>;
let k4 = <Button> <h2> Hello </h2> </Button>;

View File

@@ -27,5 +27,4 @@
//// }
goTo.marker();
debugger;
verify.completionListContains('Name');
verify.completionListIsEmpty();

View File

@@ -0,0 +1,32 @@
/// <reference path='fourslash.ts' />
//@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 (
//// <FetchUser>
//// { user => (
//// <h1>{ user./**/ }</h1>
//// )}
//// </FetchUser>
//// );
//// }
goTo.marker();
verify.completionListContains('Name');