Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 3abda0a

Browse filesBrowse files
committed
More tests, use different regex class for pragma capture
1 parent fa36640 commit 3abda0a
Copy full SHA for 3abda0a

14 files changed

+227-4Lines changed: 227 additions & 4 deletions
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎src/compiler/parser.ts‎

Copy file name to clipboardExpand all lines: src/compiler/parser.ts
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6189,7 +6189,7 @@ namespace ts {
61896189

61906190
function extractPragmas(text: string) {
61916191
const pragmas: { pragma: string, value: string | undefined }[] = [];
6192-
const pragmaRegEx = /@(\w+)(\W+(\w+)(\W+|$))?/gim;
6192+
const pragmaRegEx = /@(\S+)(\s+([\S]+)(\s+|$))?/gim;
61936193
let matchResult: RegExpMatchArray;
61946194
while (matchResult = pragmaRegEx.exec(text)) {
61956195
pragmas.push({ pragma: matchResult[1], value: matchResult[3] });
Collapse file

‎tests/baselines/reference/inlineJsxFactoryDeclarations.js‎

Copy file name to clipboardExpand all lines: tests/baselines/reference/inlineJsxFactoryDeclarations.js
+11Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ declare global {
1010
}
1111
export function dom(): void;
1212
export function otherdom(): void;
13+
export function createElement(): void;
1314
export { dom as default };
15+
//// [otherreacty.tsx]
16+
/** @jsx React.createElement */
17+
import * as React from "./renderer";
18+
<h></h>
1419
//// [other.tsx]
1520
/** @jsx h */
1621
import { dom as h } from "./renderer"
@@ -32,6 +37,12 @@ export * from "./othernoalias";
3237
export * from "./reacty";
3338

3439

40+
//// [otherreacty.js]
41+
"use strict";
42+
exports.__esModule = true;
43+
/** @jsx React.createElement */
44+
var React = require("./renderer");
45+
React.createElement("h", null);
3546
//// [other.js]
3647
"use strict";
3748
exports.__esModule = true;
Collapse file

‎tests/baselines/reference/inlineJsxFactoryDeclarations.symbols‎

Copy file name to clipboardExpand all lines: tests/baselines/reference/inlineJsxFactoryDeclarations.symbols
+14-2Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,21 @@ export function dom(): void;
1919
export function otherdom(): void;
2020
>otherdom : Symbol(otherdom, Decl(renderer.d.ts, 7, 28))
2121

22+
export function createElement(): void;
23+
>createElement : Symbol(createElement, Decl(renderer.d.ts, 8, 33))
24+
2225
export { dom as default };
23-
>dom : Symbol(default, Decl(renderer.d.ts, 9, 8))
24-
>default : Symbol(default, Decl(renderer.d.ts, 9, 8))
26+
>dom : Symbol(default, Decl(renderer.d.ts, 10, 8))
27+
>default : Symbol(default, Decl(renderer.d.ts, 10, 8))
28+
29+
=== tests/cases/conformance/jsx/inline/otherreacty.tsx ===
30+
/** @jsx React.createElement */
31+
import * as React from "./renderer";
32+
>React : Symbol(React, Decl(otherreacty.tsx, 1, 6))
33+
34+
<h></h>
35+
>h : Symbol(JSX.IntrinsicElements, Decl(renderer.d.ts, 1, 19))
36+
>h : Symbol(JSX.IntrinsicElements, Decl(renderer.d.ts, 1, 19))
2537

2638
=== tests/cases/conformance/jsx/inline/other.tsx ===
2739
/** @jsx h */
Collapse file

‎tests/baselines/reference/inlineJsxFactoryDeclarations.types‎

Copy file name to clipboardExpand all lines: tests/baselines/reference/inlineJsxFactoryDeclarations.types
+13Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,23 @@ export function dom(): void;
1919
export function otherdom(): void;
2020
>otherdom : () => void
2121

22+
export function createElement(): void;
23+
>createElement : () => void
24+
2225
export { dom as default };
2326
>dom : () => void
2427
>default : () => void
2528

29+
=== tests/cases/conformance/jsx/inline/otherreacty.tsx ===
30+
/** @jsx React.createElement */
31+
import * as React from "./renderer";
32+
>React : typeof React
33+
34+
<h></h>
35+
><h></h> : any
36+
>h : any
37+
>h : any
38+
2639
=== tests/cases/conformance/jsx/inline/other.tsx ===
2740
/** @jsx h */
2841
import { dom as h } from "./renderer"
Collapse file
+32Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
//// [tests/cases/conformance/jsx/inline/inlineJsxFactoryOverridesCompilerOption.tsx] ////
2+
3+
//// [renderer.d.ts]
4+
declare global {
5+
namespace JSX {
6+
interface IntrinsicElements {
7+
[e: string]: any;
8+
}
9+
}
10+
}
11+
export function dom(): void;
12+
export { dom as p };
13+
//// [reacty.tsx]
14+
/** @jsx dom */
15+
import {dom} from "./renderer";
16+
<h></h>
17+
//// [index.tsx]
18+
import { p } from "./renderer";
19+
<h></h>
20+
21+
22+
//// [reacty.js]
23+
"use strict";
24+
exports.__esModule = true;
25+
/** @jsx dom */
26+
var renderer_1 = require("./renderer");
27+
renderer_1.dom("h", null);
28+
//// [index.js]
29+
"use strict";
30+
exports.__esModule = true;
31+
var renderer_1 = require("./renderer");
32+
renderer_1.p("h", null);
Collapse file
+39Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
=== tests/cases/conformance/jsx/inline/renderer.d.ts ===
2+
declare global {
3+
>global : Symbol(global, Decl(renderer.d.ts, 0, 0))
4+
5+
namespace JSX {
6+
>JSX : Symbol(JSX, Decl(renderer.d.ts, 0, 16))
7+
8+
interface IntrinsicElements {
9+
>IntrinsicElements : Symbol(IntrinsicElements, Decl(renderer.d.ts, 1, 19))
10+
11+
[e: string]: any;
12+
>e : Symbol(e, Decl(renderer.d.ts, 3, 13))
13+
}
14+
}
15+
}
16+
export function dom(): void;
17+
>dom : Symbol(dom, Decl(renderer.d.ts, 6, 1))
18+
19+
export { dom as p };
20+
>dom : Symbol(p, Decl(renderer.d.ts, 8, 8))
21+
>p : Symbol(p, Decl(renderer.d.ts, 8, 8))
22+
23+
=== tests/cases/conformance/jsx/inline/reacty.tsx ===
24+
/** @jsx dom */
25+
import {dom} from "./renderer";
26+
>dom : Symbol(dom, Decl(reacty.tsx, 1, 8))
27+
28+
<h></h>
29+
>h : Symbol(JSX.IntrinsicElements, Decl(renderer.d.ts, 1, 19))
30+
>h : Symbol(JSX.IntrinsicElements, Decl(renderer.d.ts, 1, 19))
31+
32+
=== tests/cases/conformance/jsx/inline/index.tsx ===
33+
import { p } from "./renderer";
34+
>p : Symbol(p, Decl(index.tsx, 0, 8))
35+
36+
<h></h>
37+
>h : Symbol(JSX.IntrinsicElements, Decl(renderer.d.ts, 1, 19))
38+
>h : Symbol(JSX.IntrinsicElements, Decl(renderer.d.ts, 1, 19))
39+
Collapse file
+41Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
=== tests/cases/conformance/jsx/inline/renderer.d.ts ===
2+
declare global {
3+
>global : any
4+
5+
namespace JSX {
6+
>JSX : any
7+
8+
interface IntrinsicElements {
9+
>IntrinsicElements : IntrinsicElements
10+
11+
[e: string]: any;
12+
>e : string
13+
}
14+
}
15+
}
16+
export function dom(): void;
17+
>dom : () => void
18+
19+
export { dom as p };
20+
>dom : () => void
21+
>p : () => void
22+
23+
=== tests/cases/conformance/jsx/inline/reacty.tsx ===
24+
/** @jsx dom */
25+
import {dom} from "./renderer";
26+
>dom : () => void
27+
28+
<h></h>
29+
><h></h> : any
30+
>h : any
31+
>h : any
32+
33+
=== tests/cases/conformance/jsx/inline/index.tsx ===
34+
import { p } from "./renderer";
35+
>p : () => void
36+
37+
<h></h>
38+
><h></h> : any
39+
>h : any
40+
>h : any
41+
Collapse file

‎tests/baselines/reference/inlineJsxFactoryWithFragmentIsError.errors.txt‎

Copy file name to clipboardExpand all lines: tests/baselines/reference/inlineJsxFactoryWithFragmentIsError.errors.txt
+8Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
tests/cases/conformance/jsx/inline/index.tsx(3,1): error TS17017: JSX fragment is not supported when using an inline JSX factory pragma
2+
tests/cases/conformance/jsx/inline/reacty.tsx(3,1): error TS17017: JSX fragment is not supported when using an inline JSX factory pragma
23

34

45
==== tests/cases/conformance/jsx/inline/renderer.d.ts (0 errors) ====
@@ -10,6 +11,13 @@ tests/cases/conformance/jsx/inline/index.tsx(3,1): error TS17017: JSX fragment i
1011
}
1112
}
1213
export function dom(): void;
14+
export function createElement(): void;
15+
==== tests/cases/conformance/jsx/inline/reacty.tsx (1 errors) ====
16+
/** @jsx React.createElement */
17+
import * as React from "./renderer";
18+
<><h></h></>
19+
~~~~~~~~~~~~
20+
!!! error TS17017: JSX fragment is not supported when using an inline JSX factory pragma
1321
==== tests/cases/conformance/jsx/inline/index.tsx (1 errors) ====
1422
/** @jsx dom */
1523
import { dom } from "./renderer";
Collapse file

‎tests/baselines/reference/inlineJsxFactoryWithFragmentIsError.js‎

Copy file name to clipboardExpand all lines: tests/baselines/reference/inlineJsxFactoryWithFragmentIsError.js
+13-1Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,24 @@ declare global {
88
}
99
}
1010
}
11-
export function dom(): void;
11+
export function dom(): void;
12+
export function createElement(): void;
13+
//// [reacty.tsx]
14+
/** @jsx React.createElement */
15+
import * as React from "./renderer";
16+
<><h></h></>
1217
//// [index.tsx]
1318
/** @jsx dom */
1419
import { dom } from "./renderer";
1520
<><h></h></>
1621

22+
//// [reacty.js]
23+
"use strict";
24+
exports.__esModule = true;
25+
/** @jsx React.createElement */
26+
var React = require("./renderer");
27+
React.createElement(React.Fragment, null,
28+
React.createElement("h", null));
1729
//// [index.js]
1830
"use strict";
1931
exports.__esModule = true;
Collapse file

‎tests/baselines/reference/inlineJsxFactoryWithFragmentIsError.symbols‎

Copy file name to clipboardExpand all lines: tests/baselines/reference/inlineJsxFactoryWithFragmentIsError.symbols
+12Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@ declare global {
1616
export function dom(): void;
1717
>dom : Symbol(dom, Decl(renderer.d.ts, 6, 1))
1818

19+
export function createElement(): void;
20+
>createElement : Symbol(createElement, Decl(renderer.d.ts, 7, 28))
21+
22+
=== tests/cases/conformance/jsx/inline/reacty.tsx ===
23+
/** @jsx React.createElement */
24+
import * as React from "./renderer";
25+
>React : Symbol(React, Decl(reacty.tsx, 1, 6))
26+
27+
<><h></h></>
28+
>h : Symbol(JSX.IntrinsicElements, Decl(renderer.d.ts, 1, 19))
29+
>h : Symbol(JSX.IntrinsicElements, Decl(renderer.d.ts, 1, 19))
30+
1931
=== tests/cases/conformance/jsx/inline/index.tsx ===
2032
/** @jsx dom */
2133
import { dom } from "./renderer";

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.