mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-03-15 05:55:11 -05:00
Parser tests for generators and yield expressions.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
var v = { [e] };
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
[e] = 1
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
[e]();
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
[e]() { }
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
var v: { [e]: number };
|
||||
@@ -0,0 +1 @@
|
||||
var v: { [e](): number };
|
||||
@@ -0,0 +1 @@
|
||||
var v: { [e: number]: string; [e]: number };
|
||||
@@ -0,0 +1,3 @@
|
||||
enum E {
|
||||
[e] = 1
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
var v = { set [e](v) { } }
|
||||
@@ -0,0 +1 @@
|
||||
var v: { [e]?(): number };
|
||||
@@ -0,0 +1 @@
|
||||
var v: { [e]? };
|
||||
@@ -0,0 +1 @@
|
||||
var v = { [e]: 1 };
|
||||
@@ -0,0 +1 @@
|
||||
var v = { [e]() { } };
|
||||
@@ -0,0 +1 @@
|
||||
var v = { get [e]() { } };
|
||||
@@ -0,0 +1 @@
|
||||
var v = { public get [e]() { } };
|
||||
@@ -0,0 +1 @@
|
||||
var v = { [e]: 1, [e + e]: 2 };
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
[e]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
public [e]
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
[e]: Type
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
*foo() { }
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
public * foo() { }
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
*[foo]() { }
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
*() { }
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
*
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
*foo
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
class C {
|
||||
*foo<T>() { }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
class C {
|
||||
foo() {
|
||||
// Make sure we don't think of *bar as the start of a generator method.
|
||||
if (a) # * bar;
|
||||
return bar;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
function * foo() {
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
function * foo(a = yield => yield) {
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
function * yield() {
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
var v = function * yield() { }
|
||||
@@ -0,0 +1,4 @@
|
||||
function * foo() {
|
||||
// Legal to use 'yield' in a type context.
|
||||
var v: yield;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
function f(yield) {
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
function f(yield = yield) {
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
function yield() {
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
function*foo(yield) {
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
function*foo(a = yield) {
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
function*bar() {
|
||||
// 'yield' here is an identifier, and not a yield expression.
|
||||
function*foo(a = yield) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
var v = { [yield]: foo }
|
||||
@@ -0,0 +1,3 @@
|
||||
function * foo() {
|
||||
var v = { [yield]: foo }
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
var v = function * () { }
|
||||
@@ -0,0 +1 @@
|
||||
var v = function * foo() { }
|
||||
@@ -0,0 +1 @@
|
||||
var v = { *foo() { } }
|
||||
@@ -0,0 +1 @@
|
||||
var v = { *() { } }
|
||||
@@ -0,0 +1 @@
|
||||
var v = { *{ } }
|
||||
@@ -0,0 +1 @@
|
||||
var v = { * }
|
||||
@@ -0,0 +1 @@
|
||||
var v = { *[foo()]() { } }
|
||||
@@ -0,0 +1 @@
|
||||
var v = { *<T>() { } }
|
||||
@@ -0,0 +1 @@
|
||||
var v = `foo ${ a
|
||||
@@ -1,4 +1,4 @@
|
||||
function* gen {
|
||||
function* gen() {
|
||||
// Once this is supported, the inner expression does not need to be parenthesized.
|
||||
var x = yield `abc${ x }def`;
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
yield;
|
||||
@@ -0,0 +1,4 @@
|
||||
var v = { * foo() {
|
||||
yield(foo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
class C {
|
||||
*foo() {
|
||||
yield(foo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
class C {
|
||||
constructor() {
|
||||
yield foo
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
function* foo() { yield }
|
||||
@@ -0,0 +1,5 @@
|
||||
class C {
|
||||
foo() {
|
||||
yield foo
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
var v = () => {
|
||||
yield foo
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
function* foo() {
|
||||
function bar() {
|
||||
yield foo;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
var v = { get foo() { yield foo; } }
|
||||
@@ -0,0 +1,2 @@
|
||||
"use strict";
|
||||
yield(foo);
|
||||
@@ -0,0 +1,7 @@
|
||||
function*foo() {
|
||||
function bar() {
|
||||
function* quux() {
|
||||
yield(foo);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
yield foo;
|
||||
@@ -0,0 +1,4 @@
|
||||
function* foo() {
|
||||
yield
|
||||
yield
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
function* foo() {
|
||||
yield;
|
||||
yield;
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
function* foo() {
|
||||
yield*
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
function* foo() {
|
||||
yield*foo
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
function* foo() {
|
||||
yield foo
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
yield(foo);
|
||||
function* foo() {
|
||||
yield(foo);
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
var v = function*() {
|
||||
yield(foo);
|
||||
}
|
||||
Reference in New Issue
Block a user