diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index e6a0183f36b6e..8c16ff9a910da 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -4343,10 +4343,10 @@ namespace ts { } const pos = getNodePos(); - let expr = parseAssignmentExpressionOrHigher(); + let expr = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true); let operatorToken: BinaryOperatorToken; while ((operatorToken = parseOptionalToken(SyntaxKind.CommaToken))) { - expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(), pos); + expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true), pos); } if (saveDecoratorContext) { @@ -4356,10 +4356,10 @@ namespace ts { } function parseInitializer(): Expression | undefined { - return parseOptional(SyntaxKind.EqualsToken) ? parseAssignmentExpressionOrHigher() : undefined; + return parseOptional(SyntaxKind.EqualsToken) ? parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true) : undefined; } - function parseAssignmentExpressionOrHigher(): Expression { + function parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction: boolean): Expression { // AssignmentExpression[in,yield]: // 1) ConditionalExpression[?in,?yield] // 2) LeftHandSideExpression = AssignmentExpression[?in,?yield] @@ -4387,7 +4387,7 @@ namespace ts { // If we do successfully parse arrow-function, we must *not* recurse for productions 1, 2 or 3. An ArrowFunction is // not a LeftHandSideExpression, nor does it start a ConditionalExpression. So we are done // with AssignmentExpression if we see one. - const arrowExpression = tryParseParenthesizedArrowFunctionExpression() || tryParseAsyncSimpleArrowFunctionExpression(); + const arrowExpression = tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) || tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction); if (arrowExpression) { return arrowExpression; } @@ -4408,7 +4408,7 @@ namespace ts { // parameter ('x => ...') above. We handle it here by checking if the parsed expression was a single // identifier and the current token is an arrow. if (expr.kind === SyntaxKind.Identifier && token() === SyntaxKind.EqualsGreaterThanToken) { - return parseSimpleArrowFunctionExpression(pos, expr as Identifier, /*asyncModifier*/ undefined); + return parseSimpleArrowFunctionExpression(pos, expr as Identifier, allowReturnTypeInArrowFunction, /*asyncModifier*/ undefined); } // Now see if we might be in cases '2' or '3'. @@ -4418,11 +4418,11 @@ namespace ts { // Note: we call reScanGreaterToken so that we get an appropriately merged token // for cases like `> > =` becoming `>>=` if (isLeftHandSideExpression(expr) && isAssignmentOperator(reScanGreaterToken())) { - return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(), pos); + return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction), pos); } // It wasn't an assignment or a lambda. This is a conditional expression: - return parseConditionalExpressionRest(expr, pos); + return parseConditionalExpressionRest(expr, pos, allowReturnTypeInArrowFunction); } function isYieldExpression(): boolean { @@ -4472,7 +4472,7 @@ namespace ts { return finishNode( factory.createYieldExpression( parseOptionalToken(SyntaxKind.AsteriskToken), - parseAssignmentExpressionOrHigher() + parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true) ), pos ); @@ -4484,7 +4484,7 @@ namespace ts { } } - function parseSimpleArrowFunctionExpression(pos: number, identifier: Identifier, asyncModifier?: NodeArray | undefined): ArrowFunction { + function parseSimpleArrowFunctionExpression(pos: number, identifier: Identifier, allowReturnTypeInArrowFunction: boolean, asyncModifier?: NodeArray | undefined): ArrowFunction { Debug.assert(token() === SyntaxKind.EqualsGreaterThanToken, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); const parameter = factory.createParameterDeclaration( /*modifiers*/ undefined, @@ -4498,12 +4498,12 @@ namespace ts { const parameters = createNodeArray([parameter], parameter.pos, parameter.end); const equalsGreaterThanToken = parseExpectedToken(SyntaxKind.EqualsGreaterThanToken); - const body = parseArrowFunctionExpressionBody(/*isAsync*/ !!asyncModifier); + const body = parseArrowFunctionExpressionBody(/*isAsync*/ !!asyncModifier, allowReturnTypeInArrowFunction); const node = factory.createArrowFunction(asyncModifier, /*typeParameters*/ undefined, parameters, /*type*/ undefined, equalsGreaterThanToken, body); return addJSDocComment(finishNode(node, pos)); } - function tryParseParenthesizedArrowFunctionExpression(): Expression | undefined { + function tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction: boolean): Expression | undefined { const triState = isParenthesizedArrowFunctionExpression(); if (triState === Tristate.False) { // It's definitely not a parenthesized arrow function expression. @@ -4515,8 +4515,8 @@ namespace ts { // it out, but don't allow any ambiguity, and return 'undefined' if this could be an // expression instead. return triState === Tristate.True ? - parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ true) : - tryParse(parsePossibleParenthesizedArrowFunctionExpression); + parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ true, /*allowReturnTypeInArrowFunction*/ true) : + tryParse(() => parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction)); } // True -> We definitely expect a parenthesized arrow function here. @@ -4666,13 +4666,13 @@ namespace ts { } } - function parsePossibleParenthesizedArrowFunctionExpression(): ArrowFunction | undefined { + function parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction: boolean): ArrowFunction | undefined { const tokenPos = scanner.getTokenPos(); if (notParenthesizedArrow?.has(tokenPos)) { return undefined; } - const result = parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ false); + const result = parseParenthesizedArrowFunctionExpression(/*allowAmbiguity*/ false, allowReturnTypeInArrowFunction); if (!result) { (notParenthesizedArrow || (notParenthesizedArrow = new Set())).add(tokenPos); } @@ -4680,14 +4680,14 @@ namespace ts { return result; } - function tryParseAsyncSimpleArrowFunctionExpression(): ArrowFunction | undefined { + function tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction: boolean): ArrowFunction | undefined { // We do a check here so that we won't be doing unnecessarily call to "lookAhead" if (token() === SyntaxKind.AsyncKeyword) { if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === Tristate.True) { const pos = getNodePos(); const asyncModifier = parseModifiersForArrowFunction(); const expr = parseBinaryExpressionOrHigher(OperatorPrecedence.Lowest); - return parseSimpleArrowFunctionExpression(pos, expr as Identifier, asyncModifier); + return parseSimpleArrowFunctionExpression(pos, expr as Identifier, allowReturnTypeInArrowFunction, asyncModifier); } } return undefined; @@ -4714,7 +4714,7 @@ namespace ts { return Tristate.False; } - function parseParenthesizedArrowFunctionExpression(allowAmbiguity: boolean): ArrowFunction | undefined { + function parseParenthesizedArrowFunctionExpression(allowAmbiguity: boolean, allowReturnTypeInArrowFunction: boolean): ArrowFunction | undefined { const pos = getNodePos(); const hasJSDoc = hasPrecedingJSDocComment(); const modifiers = parseModifiersForArrowFunction(); @@ -4751,6 +4751,7 @@ namespace ts { } } + const hasReturnColon = token() === SyntaxKind.ColonToken; const type = parseReturnType(SyntaxKind.ColonToken, /*isType*/ false); if (type && !allowAmbiguity && typeHasArrowFunctionBlockingParseError(type)) { return undefined; @@ -4783,14 +4784,40 @@ namespace ts { const lastToken = token(); const equalsGreaterThanToken = parseExpectedToken(SyntaxKind.EqualsGreaterThanToken); const body = (lastToken === SyntaxKind.EqualsGreaterThanToken || lastToken === SyntaxKind.OpenBraceToken) - ? parseArrowFunctionExpressionBody(some(modifiers, isAsyncModifier)) + ? parseArrowFunctionExpressionBody(some(modifiers, isAsyncModifier), allowReturnTypeInArrowFunction) : parseIdentifier(); + // Given: + // x ? y => ({ y }) : z => ({ z }) + // We try to parse the body of the first arrow function by looking at: + // ({ y }) : z => ({ z }) + // This is a valid arrow function with "z" as the return type. + // + // But, if we're in the true side of a conditional expression, this colon + // terminates the expression, so we cannot allow a return type if we aren't + // certain whether or not the preceding text was parsed as a parameter list. + // + // For example, + // a() ? (b: number, c?: string): void => d() : e + // is determined by isParenthesizedArrowFunctionExpression to unambiguously + // be an arrow expression, so we allow a return type. + if (!allowReturnTypeInArrowFunction && hasReturnColon) { + // However, if the arrow function we were able to parse is followed by another colon + // as in: + // a ? (x): string => x : null + // Then allow the arrow function, and treat the second colon as terminating + // the conditional expression. It's okay to do this because this code would + // be a syntax error in JavaScript (as the second colon shouldn't be there). + if (token() !== SyntaxKind.ColonToken) { + return undefined; + } + } + const node = factory.createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body); return withJSDoc(finishNode(node, pos), hasJSDoc); } - function parseArrowFunctionExpressionBody(isAsync: boolean): Block | Expression { + function parseArrowFunctionExpressionBody(isAsync: boolean, allowReturnTypeInArrowFunction: boolean): Block | Expression { if (token() === SyntaxKind.OpenBraceToken) { return parseFunctionBlock(isAsync ? SignatureFlags.Await : SignatureFlags.None); } @@ -4820,13 +4847,13 @@ namespace ts { const savedTopLevel = topLevel; topLevel = false; const node = isAsync - ? doInAwaitContext(parseAssignmentExpressionOrHigher) - : doOutsideOfAwaitContext(parseAssignmentExpressionOrHigher); + ? doInAwaitContext(() => parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction)) + : doOutsideOfAwaitContext(() => parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction)); topLevel = savedTopLevel; return node; } - function parseConditionalExpressionRest(leftOperand: Expression, pos: number): Expression { + function parseConditionalExpressionRest(leftOperand: Expression, pos: number, allowReturnTypeInArrowFunction: boolean): Expression { // Note: we are passed in an expression which was produced from parseBinaryExpressionOrHigher. const questionToken = parseOptionalToken(SyntaxKind.QuestionToken); if (!questionToken) { @@ -4840,10 +4867,10 @@ namespace ts { factory.createConditionalExpression( leftOperand, questionToken, - doOutsideOfContext(disallowInAndDecoratorContext, parseAssignmentExpressionOrHigher), + doOutsideOfContext(disallowInAndDecoratorContext, () => parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ false)), colonToken = parseExpectedToken(SyntaxKind.ColonToken), nodeIsPresent(colonToken) - ? parseAssignmentExpressionOrHigher() + ? parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction) : createMissingNode(SyntaxKind.Identifier, /*reportAtCurrentPosition*/ false, Diagnostics._0_expected, tokenToString(SyntaxKind.ColonToken)) ), pos @@ -5859,14 +5886,14 @@ namespace ts { function parseSpreadElement(): Expression { const pos = getNodePos(); parseExpected(SyntaxKind.DotDotDotToken); - const expression = parseAssignmentExpressionOrHigher(); + const expression = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true); return finishNode(factory.createSpreadElement(expression), pos); } function parseArgumentOrArrayLiteralElement(): Expression { return token() === SyntaxKind.DotDotDotToken ? parseSpreadElement() : token() === SyntaxKind.CommaToken ? finishNode(factory.createOmittedExpression(), getNodePos()) : - parseAssignmentExpressionOrHigher(); + parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true); } function parseArgumentExpression(): Expression { @@ -5888,7 +5915,7 @@ namespace ts { const hasJSDoc = hasPrecedingJSDocComment(); if (parseOptionalToken(SyntaxKind.DotDotDotToken)) { - const expression = parseAssignmentExpressionOrHigher(); + const expression = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true); return withJSDoc(finishNode(factory.createSpreadAssignment(expression), pos), hasJSDoc); } @@ -5923,7 +5950,7 @@ namespace ts { const isShorthandPropertyAssignment = tokenIsIdentifier && (token() !== SyntaxKind.ColonToken); if (isShorthandPropertyAssignment) { const equalsToken = parseOptionalToken(SyntaxKind.EqualsToken); - const objectAssignmentInitializer = equalsToken ? allowInAnd(parseAssignmentExpressionOrHigher) : undefined; + const objectAssignmentInitializer = equalsToken ? allowInAnd(() => parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true)) : undefined; node = factory.createShorthandPropertyAssignment(name as Identifier, objectAssignmentInitializer); // Save equals token for error reporting. // TODO(rbuckton): Consider manufacturing this when we need to report an error as it is otherwise not useful. @@ -5931,7 +5958,7 @@ namespace ts { } else { parseExpected(SyntaxKind.ColonToken); - const initializer = allowInAnd(parseAssignmentExpressionOrHigher); + const initializer = allowInAnd(() => parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true)); node = factory.createPropertyAssignment(name, initializer); } // Decorators, Modifiers, questionToken, and exclamationToken are not supported by property assignments and are reported in the grammar checker @@ -6134,7 +6161,7 @@ namespace ts { let node: IterationStatement; if (awaitToken ? parseExpected(SyntaxKind.OfKeyword) : parseOptional(SyntaxKind.OfKeyword)) { - const expression = allowInAnd(parseAssignmentExpressionOrHigher); + const expression = allowInAnd(() => parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true)); parseExpected(SyntaxKind.CloseParenToken); node = factory.createForOfStatement(awaitToken, initializer, expression, parseStatement()); } @@ -7501,7 +7528,7 @@ namespace ts { const pos = getNodePos(); const name = tokenIsIdentifierOrKeyword(token()) ? parseIdentifierName() : parseLiteralLikeNode(SyntaxKind.StringLiteral) as StringLiteral; parseExpected(SyntaxKind.ColonToken); - const value = parseAssignmentExpressionOrHigher(); + const value = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true); return finishNode(factory.createAssertEntry(name, value), pos); } @@ -7769,7 +7796,7 @@ namespace ts { else { parseExpected(SyntaxKind.DefaultKeyword); } - const expression = parseAssignmentExpressionOrHigher(); + const expression = parseAssignmentExpressionOrHigher(/*allowReturnTypeInArrowFunction*/ true); parseSemicolon(); setAwaitContext(savedAwaitContext); const node = factory.createExportAssignment(modifiers, isExportEquals, expression); diff --git a/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).errors.txt new file mode 100644 index 0000000000000..2ce01c971ae6d --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).errors.txt @@ -0,0 +1,35 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,11): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,11): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,17): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,27): error TS2304: Cannot find name 'f'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,11): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,17): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,27): error TS2304: Cannot find name 'f'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (5 errors) ==== + a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'f'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (4 errors) ==== + a ? (b) : c => (d) : e => f + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'f'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).js new file mode 100644 index 0000000000000..9370fd28c642c --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts] //// + +//// [fileJs.js] +a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +a ? (b) : c => (d) : e => f + + +//// [fileJs.js] +a ? function (b) { return (d); } : function (e) { return f; }; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +a ? function (b) { return (d); } : function (e) { return f; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).symbols new file mode 100644 index 0000000000000..6ea222c72fccd --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon +>b : Symbol(b, Decl(fileJs.js, 0, 5)) +>c : Symbol(c) +>e : Symbol(e, Decl(fileJs.js, 0, 20)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? (b) : c => (d) : e => f +>b : Symbol(b, Decl(fileTs.ts, 0, 5)) +>c : Symbol(c) +>e : Symbol(e, Decl(fileTs.ts, 0, 20)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).types new file mode 100644 index 0000000000000..beb0e6b891a38 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10(target=es3).types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon +>a ? (b) : c => (d) : e => f : (b: any) => c +>a : any +>(b) : c => (d) : (b: any) => c +>b : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? (b) : c => (d) : e => f +>a ? (b) : c => (d) : e => f : (b: any) => c +>a : any +>(b) : c => (d) : (b: any) => c +>b : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).errors.txt new file mode 100644 index 0000000000000..2ce01c971ae6d --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).errors.txt @@ -0,0 +1,35 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,11): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,11): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,17): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,27): error TS2304: Cannot find name 'f'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,11): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,17): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,27): error TS2304: Cannot find name 'f'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (5 errors) ==== + a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'f'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (4 errors) ==== + a ? (b) : c => (d) : e => f + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'f'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).js new file mode 100644 index 0000000000000..9109ef6971ab1 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts] //// + +//// [fileJs.js] +a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +a ? (b) : c => (d) : e => f + + +//// [fileJs.js] +a ? (b) => (d) : e => f; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +a ? (b) => (d) : e => f; diff --git a/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).symbols new file mode 100644 index 0000000000000..6ea222c72fccd --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).symbols @@ -0,0 +1,12 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon +>b : Symbol(b, Decl(fileJs.js, 0, 5)) +>c : Symbol(c) +>e : Symbol(e, Decl(fileJs.js, 0, 20)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? (b) : c => (d) : e => f +>b : Symbol(b, Decl(fileTs.ts, 0, 5)) +>c : Symbol(c) +>e : Symbol(e, Decl(fileTs.ts, 0, 20)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).types new file mode 100644 index 0000000000000..beb0e6b891a38 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression10(target=es6).types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon +>a ? (b) : c => (d) : e => f : (b: any) => c +>a : any +>(b) : c => (d) : (b: any) => c +>b : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? (b) : c => (d) : e => f +>a ? (b) : c => (d) : e => f : (b: any) => c +>a : any +>(b) : c => (d) : (b: any) => c +>b : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression10.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression10.errors.txt deleted file mode 100644 index f562408c93ccf..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression10.errors.txt +++ /dev/null @@ -1,20 +0,0 @@ -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(1,1): error TS2304: Cannot find name 'a'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(1,11): error TS2304: Cannot find name 'c'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(1,22): error TS2304: Cannot find name 'e'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(1,27): error TS2304: Cannot find name 'f'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts(2,1): error TS1005: ':' expected. - - -==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts (5 errors) ==== - a ? (b) : c => (d) : e => f - ~ -!!! error TS2304: Cannot find name 'a'. - ~ -!!! error TS2304: Cannot find name 'c'. - ~ -!!! error TS2304: Cannot find name 'e'. - ~ -!!! error TS2304: Cannot find name 'f'. - - -!!! error TS1005: ':' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression10.js b/tests/baselines/reference/parserArrowFunctionExpression10.js deleted file mode 100644 index dde6e36426539..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression10.js +++ /dev/null @@ -1,8 +0,0 @@ -//// [parserArrowFunctionExpression10.ts] -a ? (b) : c => (d) : e => f - - -//// [parserArrowFunctionExpression10.js] -a ? function (b) { return function (d) { return f; }; } - : -; diff --git a/tests/baselines/reference/parserArrowFunctionExpression10.symbols b/tests/baselines/reference/parserArrowFunctionExpression10.symbols deleted file mode 100644 index 7e7cdb86a0a5d..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression10.symbols +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts === -a ? (b) : c => (d) : e => f ->b : Symbol(b, Decl(parserArrowFunctionExpression10.ts, 0, 5)) ->c : Symbol(c) ->d : Symbol(d, Decl(parserArrowFunctionExpression10.ts, 0, 16)) ->e : Symbol(e) - diff --git a/tests/baselines/reference/parserArrowFunctionExpression10.types b/tests/baselines/reference/parserArrowFunctionExpression10.types deleted file mode 100644 index 25f24b99a46c5..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression10.types +++ /dev/null @@ -1,12 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts === -a ? (b) : c => (d) : e => f ->a ? (b) : c => (d) : e => f : any ->a : any ->(b) : c => (d) : e => f : (b: any) => c ->b : any ->(d) : e => f : (d: any) => e ->d : any ->f : any - -> : any - diff --git a/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).errors.txt new file mode 100644 index 0000000000000..e5003f90bfcaf --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).errors.txt @@ -0,0 +1,38 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,5): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,9): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,14): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,24): error TS2304: Cannot find name 'f'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,5): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,9): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,14): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,24): error TS2304: Cannot find name 'f'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (5 errors) ==== + a ? b ? c : (d) : e => f // Legal JS + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'f'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (5 errors) ==== + a ? b ? c : (d) : e => f + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'f'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).js new file mode 100644 index 0000000000000..83f125be77082 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts] //// + +//// [fileJs.js] +a ? b ? c : (d) : e => f // Legal JS + +//// [fileTs.ts] +a ? b ? c : (d) : e => f + + +//// [fileJs.js] +a ? b ? c : (d) : function (e) { return f; }; // Legal JS +//// [fileTs.js] +a ? b ? c : (d) : function (e) { return f; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).symbols new file mode 100644 index 0000000000000..0db9d8056faf8 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? b ? c : (d) : e => f // Legal JS +>e : Symbol(e, Decl(fileJs.js, 0, 17)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? b ? c : (d) : e => f +>e : Symbol(e, Decl(fileTs.ts, 0, 17)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).types new file mode 100644 index 0000000000000..f249c7d954c01 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11(target=es3).types @@ -0,0 +1,26 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? b ? c : (d) : e => f // Legal JS +>a ? b ? c : (d) : e => f : any +>a : any +>b ? c : (d) : any +>b : any +>c : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? b ? c : (d) : e => f +>a ? b ? c : (d) : e => f : any +>a : any +>b ? c : (d) : any +>b : any +>c : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).errors.txt new file mode 100644 index 0000000000000..e5003f90bfcaf --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).errors.txt @@ -0,0 +1,38 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,5): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,9): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,14): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,24): error TS2304: Cannot find name 'f'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,5): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,9): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,14): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,24): error TS2304: Cannot find name 'f'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (5 errors) ==== + a ? b ? c : (d) : e => f // Legal JS + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'f'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (5 errors) ==== + a ? b ? c : (d) : e => f + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'f'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).js new file mode 100644 index 0000000000000..4b3d15555a4be --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts] //// + +//// [fileJs.js] +a ? b ? c : (d) : e => f // Legal JS + +//// [fileTs.ts] +a ? b ? c : (d) : e => f + + +//// [fileJs.js] +a ? b ? c : (d) : e => f; // Legal JS +//// [fileTs.js] +a ? b ? c : (d) : e => f; diff --git a/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).symbols new file mode 100644 index 0000000000000..0db9d8056faf8 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? b ? c : (d) : e => f // Legal JS +>e : Symbol(e, Decl(fileJs.js, 0, 17)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? b ? c : (d) : e => f +>e : Symbol(e, Decl(fileTs.ts, 0, 17)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).types new file mode 100644 index 0000000000000..f249c7d954c01 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression11(target=es6).types @@ -0,0 +1,26 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? b ? c : (d) : e => f // Legal JS +>a ? b ? c : (d) : e => f : any +>a : any +>b ? c : (d) : any +>b : any +>c : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? b ? c : (d) : e => f +>a ? b ? c : (d) : e => f : any +>a : any +>b ? c : (d) : any +>b : any +>c : any +>(d) : any +>d : any +>e => f : (e: any) => any +>e : any +>f : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression11.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression11.errors.txt deleted file mode 100644 index d8abfd83fa4b6..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression11.errors.txt +++ /dev/null @@ -1,23 +0,0 @@ -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,1): error TS2304: Cannot find name 'a'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,5): error TS2304: Cannot find name 'b'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,9): error TS2304: Cannot find name 'c'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,19): error TS2304: Cannot find name 'e'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(1,24): error TS2304: Cannot find name 'f'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts(2,1): error TS1005: ':' expected. - - -==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts (6 errors) ==== - a ? b ? c : (d) : e => f - ~ -!!! error TS2304: Cannot find name 'a'. - ~ -!!! error TS2304: Cannot find name 'b'. - ~ -!!! error TS2304: Cannot find name 'c'. - ~ -!!! error TS2304: Cannot find name 'e'. - ~ -!!! error TS2304: Cannot find name 'f'. - - -!!! error TS1005: ':' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression11.js b/tests/baselines/reference/parserArrowFunctionExpression11.js deleted file mode 100644 index bc2dcf4980bb5..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression11.js +++ /dev/null @@ -1,8 +0,0 @@ -//// [parserArrowFunctionExpression11.ts] -a ? b ? c : (d) : e => f - - -//// [parserArrowFunctionExpression11.js] -a ? b ? c : function (d) { return f; } - : -; diff --git a/tests/baselines/reference/parserArrowFunctionExpression11.symbols b/tests/baselines/reference/parserArrowFunctionExpression11.symbols deleted file mode 100644 index f49eae1e16cba..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression11.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts === -a ? b ? c : (d) : e => f ->d : Symbol(d, Decl(parserArrowFunctionExpression11.ts, 0, 13)) ->e : Symbol(e) - diff --git a/tests/baselines/reference/parserArrowFunctionExpression11.types b/tests/baselines/reference/parserArrowFunctionExpression11.types deleted file mode 100644 index 9e3e5438eb66e..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression11.types +++ /dev/null @@ -1,13 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts === -a ? b ? c : (d) : e => f ->a ? b ? c : (d) : e => f : any ->a : any ->b ? c : (d) : e => f : any ->b : any ->c : any ->(d) : e => f : (d: any) => e ->d : any ->f : any - -> : any - diff --git a/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).errors.txt new file mode 100644 index 0000000000000..98b8bcba5b07a --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).errors.txt @@ -0,0 +1,26 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,13): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,22): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,13): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,22): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (3 errors) ==== + a ? (b) => (c): d => e // Legal JS + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (3 errors) ==== + a ? (b) => (c): d => e + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).js new file mode 100644 index 0000000000000..9fdbe2e390229 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts] //// + +//// [fileJs.js] +a ? (b) => (c): d => e // Legal JS + +//// [fileTs.ts] +a ? (b) => (c): d => e + + +//// [fileJs.js] +a ? function (b) { return (c); } : function (d) { return e; }; // Legal JS +//// [fileTs.js] +a ? function (b) { return (c); } : function (d) { return e; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).symbols new file mode 100644 index 0000000000000..917382795d0c2 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? (b) => (c): d => e // Legal JS +>b : Symbol(b, Decl(fileJs.js, 0, 5)) +>d : Symbol(d, Decl(fileJs.js, 0, 15)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? (b) => (c): d => e +>b : Symbol(b, Decl(fileTs.ts, 0, 5)) +>d : Symbol(d, Decl(fileTs.ts, 0, 15)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).types new file mode 100644 index 0000000000000..b4ed0f79354f1 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12(target=es3).types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? (b) => (c): d => e // Legal JS +>a ? (b) => (c): d => e : (b: any) => any +>a : any +>(b) => (c) : (b: any) => any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? (b) => (c): d => e +>a ? (b) => (c): d => e : (b: any) => any +>a : any +>(b) => (c) : (b: any) => any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).errors.txt new file mode 100644 index 0000000000000..98b8bcba5b07a --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).errors.txt @@ -0,0 +1,26 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,13): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,22): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,13): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,22): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (3 errors) ==== + a ? (b) => (c): d => e // Legal JS + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (3 errors) ==== + a ? (b) => (c): d => e + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).js new file mode 100644 index 0000000000000..727fb88815450 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts] //// + +//// [fileJs.js] +a ? (b) => (c): d => e // Legal JS + +//// [fileTs.ts] +a ? (b) => (c): d => e + + +//// [fileJs.js] +a ? (b) => (c) : d => e; // Legal JS +//// [fileTs.js] +a ? (b) => (c) : d => e; diff --git a/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).symbols new file mode 100644 index 0000000000000..917382795d0c2 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? (b) => (c): d => e // Legal JS +>b : Symbol(b, Decl(fileJs.js, 0, 5)) +>d : Symbol(d, Decl(fileJs.js, 0, 15)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? (b) => (c): d => e +>b : Symbol(b, Decl(fileTs.ts, 0, 5)) +>d : Symbol(d, Decl(fileTs.ts, 0, 15)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).types new file mode 100644 index 0000000000000..b4ed0f79354f1 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression12(target=es6).types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? (b) => (c): d => e // Legal JS +>a ? (b) => (c): d => e : (b: any) => any +>a : any +>(b) => (c) : (b: any) => any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? (b) => (c): d => e +>a ? (b) => (c): d => e : (b: any) => any +>a : any +>(b) => (c) : (b: any) => any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression12.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression12.errors.txt deleted file mode 100644 index 59fc42b58c97c..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression12.errors.txt +++ /dev/null @@ -1,17 +0,0 @@ -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts(1,1): error TS2304: Cannot find name 'a'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts(1,17): error TS2304: Cannot find name 'd'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts(1,22): error TS2304: Cannot find name 'e'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts(2,1): error TS1005: ':' expected. - - -==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts (4 errors) ==== - a ? (b) => (c): d => e - ~ -!!! error TS2304: Cannot find name 'a'. - ~ -!!! error TS2304: Cannot find name 'd'. - ~ -!!! error TS2304: Cannot find name 'e'. - - -!!! error TS1005: ':' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression12.js b/tests/baselines/reference/parserArrowFunctionExpression12.js deleted file mode 100644 index b3750be26f270..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression12.js +++ /dev/null @@ -1,8 +0,0 @@ -//// [parserArrowFunctionExpression12.ts] -a ? (b) => (c): d => e - - -//// [parserArrowFunctionExpression12.js] -a ? function (b) { return function (c) { return e; }; } - : -; diff --git a/tests/baselines/reference/parserArrowFunctionExpression12.symbols b/tests/baselines/reference/parserArrowFunctionExpression12.symbols deleted file mode 100644 index d092dfaf00d24..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression12.symbols +++ /dev/null @@ -1,6 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts === -a ? (b) => (c): d => e ->b : Symbol(b, Decl(parserArrowFunctionExpression12.ts, 0, 5)) ->c : Symbol(c, Decl(parserArrowFunctionExpression12.ts, 0, 12)) ->d : Symbol(d) - diff --git a/tests/baselines/reference/parserArrowFunctionExpression12.types b/tests/baselines/reference/parserArrowFunctionExpression12.types deleted file mode 100644 index bab73d7a2d342..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression12.types +++ /dev/null @@ -1,12 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts === -a ? (b) => (c): d => e ->a ? (b) => (c): d => e : any ->a : any ->(b) => (c): d => e : (b: any) => (c: any) => d ->b : any ->(c): d => e : (c: any) => d ->c : any ->e : any - -> : any - diff --git a/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).errors.txt new file mode 100644 index 0000000000000..eef5315fcad33 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).errors.txt @@ -0,0 +1,23 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,11): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,21): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,11): error TS2304: Cannot find name 'a'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (3 errors) ==== + a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'a'. + ~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (2 errors) ==== + a ? () => a() : (): any => null; + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'a'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).js new file mode 100644 index 0000000000000..e4efcb107ffce --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts] //// + +//// [fileJs.js] +a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren + +//// [fileTs.ts] +a ? () => a() : (): any => null; + + +//// [fileJs.js] +a ? function () { return a(); } : function () { return null; }; // Not legal JS; "Unexpected token ')'" at last paren +//// [fileTs.js] +a ? function () { return a(); } : function () { return null; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).symbols new file mode 100644 index 0000000000000..966a71ec7dfc0 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren +No type information for this code. +No type information for this code.=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? () => a() : (): any => null; +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).types new file mode 100644 index 0000000000000..7f87eda9f25bb --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13(target=es3).types @@ -0,0 +1,20 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren +>a ? () => a() : (): any => null : () => any +>a : any +>() => a() : () => any +>a() : any +>a : any +>(): any => null : () => any +>null : null + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? () => a() : (): any => null; +>a ? () => a() : (): any => null : () => any +>a : any +>() => a() : () => any +>a() : any +>a : any +>(): any => null : () => any +>null : null + diff --git a/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).errors.txt new file mode 100644 index 0000000000000..eef5315fcad33 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).errors.txt @@ -0,0 +1,23 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,11): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,21): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,11): error TS2304: Cannot find name 'a'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (3 errors) ==== + a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'a'. + ~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (2 errors) ==== + a ? () => a() : (): any => null; + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'a'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).js new file mode 100644 index 0000000000000..d0ecd1f3fddef --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts] //// + +//// [fileJs.js] +a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren + +//// [fileTs.ts] +a ? () => a() : (): any => null; + + +//// [fileJs.js] +a ? () => a() : () => null; // Not legal JS; "Unexpected token ')'" at last paren +//// [fileTs.js] +a ? () => a() : () => null; diff --git a/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).symbols new file mode 100644 index 0000000000000..966a71ec7dfc0 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).symbols @@ -0,0 +1,7 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren +No type information for this code. +No type information for this code.=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? () => a() : (): any => null; +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).types new file mode 100644 index 0000000000000..7f87eda9f25bb --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression13(target=es6).types @@ -0,0 +1,20 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren +>a ? () => a() : (): any => null : () => any +>a : any +>() => a() : () => any +>a() : any +>a : any +>(): any => null : () => any +>null : null + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? () => a() : (): any => null; +>a ? () => a() : (): any => null : () => any +>a : any +>() => a() : () => any +>a() : any +>a : any +>(): any => null : () => any +>null : null + diff --git a/tests/baselines/reference/parserArrowFunctionExpression13.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression13.errors.txt deleted file mode 100644 index d0ea1c7d179ab..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression13.errors.txt +++ /dev/null @@ -1,11 +0,0 @@ -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts(1,1): error TS2304: Cannot find name 'a'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts(1,11): error TS2304: Cannot find name 'a'. - - -==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts (2 errors) ==== - a ? () => a() : (): any => null; - ~ -!!! error TS2304: Cannot find name 'a'. - ~ -!!! error TS2304: Cannot find name 'a'. - \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression13.js b/tests/baselines/reference/parserArrowFunctionExpression13.js deleted file mode 100644 index d208d9ba90a1f..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression13.js +++ /dev/null @@ -1,6 +0,0 @@ -//// [parserArrowFunctionExpression13.ts] -a ? () => a() : (): any => null; - - -//// [parserArrowFunctionExpression13.js] -a ? function () { return a(); } : function () { return null; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression13.symbols b/tests/baselines/reference/parserArrowFunctionExpression13.symbols deleted file mode 100644 index 643cfcf1a2b78..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression13.symbols +++ /dev/null @@ -1,4 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts === -a ? () => a() : (): any => null; -No type information for this code. -No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression13.types b/tests/baselines/reference/parserArrowFunctionExpression13.types deleted file mode 100644 index 9341e27b0c30d..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression13.types +++ /dev/null @@ -1,10 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts === -a ? () => a() : (): any => null; ->a ? () => a() : (): any => null : () => any ->a : any ->() => a() : () => any ->a() : any ->a : any ->(): any => null : () => any ->null : null - diff --git a/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).errors.txt new file mode 100644 index 0000000000000..e8c3a1977ae25 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).errors.txt @@ -0,0 +1,38 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,11): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,20): error TS8009: The '?' modifier can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,23): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,32): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,40): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,46): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,40): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,46): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (7 errors) ==== + a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon + ~ +!!! error TS2304: Cannot find name 'a'. + ~~~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~ +!!! error TS8009: The '?' modifier can only be used in TypeScript files. + ~~~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'e'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (3 errors) ==== + a() ? (b: number, c?: string): void => d() : e; + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).js new file mode 100644 index 0000000000000..395b6d6daeb5e --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts] //// + +//// [fileJs.js] +a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon + +//// [fileTs.ts] +a() ? (b: number, c?: string): void => d() : e; + + +//// [fileJs.js] +a() ? function (b, c) { return d(); } : e; // Not legal JS; "Unexpected token ':'" at first colon +//// [fileTs.js] +a() ? function (b, c) { return d(); } : e; diff --git a/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).symbols new file mode 100644 index 0000000000000..858a4a939114b --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon +>b : Symbol(b, Decl(fileJs.js, 0, 7)) +>c : Symbol(c, Decl(fileJs.js, 0, 17)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a() ? (b: number, c?: string): void => d() : e; +>b : Symbol(b, Decl(fileTs.ts, 0, 7)) +>c : Symbol(c, Decl(fileTs.ts, 0, 17)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).types new file mode 100644 index 0000000000000..cd0f1f8c8a3da --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14(target=es3).types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon +>a() ? (b: number, c?: string): void => d() : e : any +>a() : any +>a : any +>(b: number, c?: string): void => d() : (b: number, c?: string) => void +>b : number +>c : string +>d() : any +>d : any +>e : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a() ? (b: number, c?: string): void => d() : e; +>a() ? (b: number, c?: string): void => d() : e : any +>a() : any +>a : any +>(b: number, c?: string): void => d() : (b: number, c?: string) => void +>b : number +>c : string +>d() : any +>d : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).errors.txt new file mode 100644 index 0000000000000..e8c3a1977ae25 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).errors.txt @@ -0,0 +1,38 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,11): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,20): error TS8009: The '?' modifier can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,23): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,32): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,40): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,46): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,40): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,46): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (7 errors) ==== + a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon + ~ +!!! error TS2304: Cannot find name 'a'. + ~~~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~ +!!! error TS8009: The '?' modifier can only be used in TypeScript files. + ~~~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'e'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (3 errors) ==== + a() ? (b: number, c?: string): void => d() : e; + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).js new file mode 100644 index 0000000000000..7c4da63e4d5ac --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts] //// + +//// [fileJs.js] +a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon + +//// [fileTs.ts] +a() ? (b: number, c?: string): void => d() : e; + + +//// [fileJs.js] +a() ? (b, c) => d() : e; // Not legal JS; "Unexpected token ':'" at first colon +//// [fileTs.js] +a() ? (b, c) => d() : e; diff --git a/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).symbols new file mode 100644 index 0000000000000..858a4a939114b --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon +>b : Symbol(b, Decl(fileJs.js, 0, 7)) +>c : Symbol(c, Decl(fileJs.js, 0, 17)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a() ? (b: number, c?: string): void => d() : e; +>b : Symbol(b, Decl(fileTs.ts, 0, 7)) +>c : Symbol(c, Decl(fileTs.ts, 0, 17)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).types new file mode 100644 index 0000000000000..cd0f1f8c8a3da --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression14(target=es6).types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon +>a() ? (b: number, c?: string): void => d() : e : any +>a() : any +>a : any +>(b: number, c?: string): void => d() : (b: number, c?: string) => void +>b : number +>c : string +>d() : any +>d : any +>e : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a() ? (b: number, c?: string): void => d() : e; +>a() ? (b: number, c?: string): void => d() : e : any +>a() : any +>a : any +>(b: number, c?: string): void => d() : (b: number, c?: string) => void +>b : number +>c : string +>d() : any +>d : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression14.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression14.errors.txt deleted file mode 100644 index b37e09d92ff3a..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression14.errors.txt +++ /dev/null @@ -1,14 +0,0 @@ -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts(1,1): error TS2304: Cannot find name 'a'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts(1,40): error TS2304: Cannot find name 'd'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts(1,46): error TS2304: Cannot find name 'e'. - - -==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts (3 errors) ==== - a() ? (b: number, c?: string): void => d() : e; - ~ -!!! error TS2304: Cannot find name 'a'. - ~ -!!! error TS2304: Cannot find name 'd'. - ~ -!!! error TS2304: Cannot find name 'e'. - \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression14.js b/tests/baselines/reference/parserArrowFunctionExpression14.js deleted file mode 100644 index 2dcaae91f3506..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression14.js +++ /dev/null @@ -1,6 +0,0 @@ -//// [parserArrowFunctionExpression14.ts] -a() ? (b: number, c?: string): void => d() : e; - - -//// [parserArrowFunctionExpression14.js] -a() ? function (b, c) { return d(); } : e; diff --git a/tests/baselines/reference/parserArrowFunctionExpression14.symbols b/tests/baselines/reference/parserArrowFunctionExpression14.symbols deleted file mode 100644 index 95584e9f223be..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression14.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts === -a() ? (b: number, c?: string): void => d() : e; ->b : Symbol(b, Decl(parserArrowFunctionExpression14.ts, 0, 7)) ->c : Symbol(c, Decl(parserArrowFunctionExpression14.ts, 0, 17)) - diff --git a/tests/baselines/reference/parserArrowFunctionExpression14.types b/tests/baselines/reference/parserArrowFunctionExpression14.types deleted file mode 100644 index 1c6d22bb83dc0..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression14.types +++ /dev/null @@ -1,12 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts === -a() ? (b: number, c?: string): void => d() : e; ->a() ? (b: number, c?: string): void => d() : e : any ->a() : any ->a : any ->(b: number, c?: string): void => d() : (b: number, c?: string) => void ->b : number ->c : string ->d() : any ->d : any ->e : any - diff --git a/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).errors.txt new file mode 100644 index 0000000000000..88b97c49a7489 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,18): error TS8010: Type annotations can only be used in TypeScript files. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (1 errors) ==== + false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon + ~~~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (0 errors) ==== + false ? (param): string => param : null + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).js new file mode 100644 index 0000000000000..b8098ff57f68d --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression15.ts] //// + +//// [fileJs.js] +false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +false ? (param): string => param : null + + +//// [fileJs.js] +false ? function (param) { return param; } : null; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +false ? function (param) { return param; } : null; diff --git a/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).symbols new file mode 100644 index 0000000000000..5f5e6a8710b4a --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon +>param : Symbol(param, Decl(fileJs.js, 0, 9)) +>param : Symbol(param, Decl(fileJs.js, 0, 9)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +false ? (param): string => param : null +>param : Symbol(param, Decl(fileTs.ts, 0, 9)) +>param : Symbol(param, Decl(fileTs.ts, 0, 9)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).types new file mode 100644 index 0000000000000..6fed5ddddacec --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression15(target=es3).types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon +>false ? (param): string => param : null : (param: any) => string +>false : false +>(param): string => param : (param: any) => string +>param : any +>param : any +>null : null + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +false ? (param): string => param : null +>false ? (param): string => param : null : (param: any) => string +>false : false +>(param): string => param : (param: any) => string +>param : any +>param : any +>null : null + diff --git a/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).errors.txt new file mode 100644 index 0000000000000..88b97c49a7489 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,18): error TS8010: Type annotations can only be used in TypeScript files. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (1 errors) ==== + false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon + ~~~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (0 errors) ==== + false ? (param): string => param : null + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).js new file mode 100644 index 0000000000000..00eb062bed568 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression15.ts] //// + +//// [fileJs.js] +false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +false ? (param): string => param : null + + +//// [fileJs.js] +false ? (param) => param : null; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +false ? (param) => param : null; diff --git a/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).symbols new file mode 100644 index 0000000000000..5f5e6a8710b4a --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon +>param : Symbol(param, Decl(fileJs.js, 0, 9)) +>param : Symbol(param, Decl(fileJs.js, 0, 9)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +false ? (param): string => param : null +>param : Symbol(param, Decl(fileTs.ts, 0, 9)) +>param : Symbol(param, Decl(fileTs.ts, 0, 9)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).types new file mode 100644 index 0000000000000..6fed5ddddacec --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression15(target=es6).types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon +>false ? (param): string => param : null : (param: any) => string +>false : false +>(param): string => param : (param: any) => string +>param : any +>param : any +>null : null + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +false ? (param): string => param : null +>false ? (param): string => param : null : (param: any) => string +>false : false +>(param): string => param : (param: any) => string +>param : any +>param : any +>null : null + diff --git a/tests/baselines/reference/parserArrowFunctionExpression15.js b/tests/baselines/reference/parserArrowFunctionExpression15.js deleted file mode 100644 index a18efc84f0975..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression15.js +++ /dev/null @@ -1,6 +0,0 @@ -//// [parserArrowFunctionExpression15.ts] -false ? (param): string => param : null - - -//// [parserArrowFunctionExpression15.js] -false ? function (param) { return param; } : null; diff --git a/tests/baselines/reference/parserArrowFunctionExpression15.symbols b/tests/baselines/reference/parserArrowFunctionExpression15.symbols deleted file mode 100644 index 7cb354c7dc912..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression15.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression15.ts === -false ? (param): string => param : null ->param : Symbol(param, Decl(parserArrowFunctionExpression15.ts, 0, 9)) ->param : Symbol(param, Decl(parserArrowFunctionExpression15.ts, 0, 9)) - diff --git a/tests/baselines/reference/parserArrowFunctionExpression15.types b/tests/baselines/reference/parserArrowFunctionExpression15.types deleted file mode 100644 index 4640763862112..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression15.types +++ /dev/null @@ -1,9 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression15.ts === -false ? (param): string => param : null ->false ? (param): string => param : null : (param: any) => string ->false : false ->(param): string => param : (param: any) => string ->param : any ->param : any ->null : null - diff --git a/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).errors.txt new file mode 100644 index 0000000000000..fc050a9dfdeee --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,25): error TS8010: Type annotations can only be used in TypeScript files. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (1 errors) ==== + true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon + ~~~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (0 errors) ==== + true ? false ? (param): string => param : null : null + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).js new file mode 100644 index 0000000000000..c9d6012828d76 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression16.ts] //// + +//// [fileJs.js] +true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +true ? false ? (param): string => param : null : null + + +//// [fileJs.js] +true ? false ? function (param) { return param; } : null : null; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +true ? false ? function (param) { return param; } : null : null; diff --git a/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).symbols new file mode 100644 index 0000000000000..712635f5484de --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon +>param : Symbol(param, Decl(fileJs.js, 0, 16)) +>param : Symbol(param, Decl(fileJs.js, 0, 16)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +true ? false ? (param): string => param : null : null +>param : Symbol(param, Decl(fileTs.ts, 0, 16)) +>param : Symbol(param, Decl(fileTs.ts, 0, 16)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).types new file mode 100644 index 0000000000000..346ab4df47573 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression16(target=es3).types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon +>true ? false ? (param): string => param : null : null : (param: any) => string +>true : true +>false ? (param): string => param : null : (param: any) => string +>false : false +>(param): string => param : (param: any) => string +>param : any +>param : any +>null : null +>null : null + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +true ? false ? (param): string => param : null : null +>true ? false ? (param): string => param : null : null : (param: any) => string +>true : true +>false ? (param): string => param : null : (param: any) => string +>false : false +>(param): string => param : (param: any) => string +>param : any +>param : any +>null : null +>null : null + diff --git a/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).errors.txt new file mode 100644 index 0000000000000..fc050a9dfdeee --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,25): error TS8010: Type annotations can only be used in TypeScript files. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (1 errors) ==== + true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon + ~~~~~~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (0 errors) ==== + true ? false ? (param): string => param : null : null + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).js new file mode 100644 index 0000000000000..8c7861c2dd107 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression16.ts] //// + +//// [fileJs.js] +true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +true ? false ? (param): string => param : null : null + + +//// [fileJs.js] +true ? false ? (param) => param : null : null; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +true ? false ? (param) => param : null : null; diff --git a/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).symbols new file mode 100644 index 0000000000000..712635f5484de --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon +>param : Symbol(param, Decl(fileJs.js, 0, 16)) +>param : Symbol(param, Decl(fileJs.js, 0, 16)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +true ? false ? (param): string => param : null : null +>param : Symbol(param, Decl(fileTs.ts, 0, 16)) +>param : Symbol(param, Decl(fileTs.ts, 0, 16)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).types new file mode 100644 index 0000000000000..346ab4df47573 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression16(target=es6).types @@ -0,0 +1,24 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon +>true ? false ? (param): string => param : null : null : (param: any) => string +>true : true +>false ? (param): string => param : null : (param: any) => string +>false : false +>(param): string => param : (param: any) => string +>param : any +>param : any +>null : null +>null : null + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +true ? false ? (param): string => param : null : null +>true ? false ? (param): string => param : null : null : (param: any) => string +>true : true +>false ? (param): string => param : null : (param: any) => string +>false : false +>(param): string => param : (param: any) => string +>param : any +>param : any +>null : null +>null : null + diff --git a/tests/baselines/reference/parserArrowFunctionExpression16.js b/tests/baselines/reference/parserArrowFunctionExpression16.js deleted file mode 100644 index 8d0404c91c853..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression16.js +++ /dev/null @@ -1,6 +0,0 @@ -//// [parserArrowFunctionExpression16.ts] -true ? false ? (param): string => param : null : null - - -//// [parserArrowFunctionExpression16.js] -true ? false ? function (param) { return param; } : null : null; diff --git a/tests/baselines/reference/parserArrowFunctionExpression16.symbols b/tests/baselines/reference/parserArrowFunctionExpression16.symbols deleted file mode 100644 index f2a4ff04df134..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression16.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression16.ts === -true ? false ? (param): string => param : null : null ->param : Symbol(param, Decl(parserArrowFunctionExpression16.ts, 0, 16)) ->param : Symbol(param, Decl(parserArrowFunctionExpression16.ts, 0, 16)) - diff --git a/tests/baselines/reference/parserArrowFunctionExpression16.types b/tests/baselines/reference/parserArrowFunctionExpression16.types deleted file mode 100644 index fffd623adac0d..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression16.types +++ /dev/null @@ -1,12 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression16.ts === -true ? false ? (param): string => param : null : null ->true ? false ? (param): string => param : null : null : (param: any) => string ->true : true ->false ? (param): string => param : null : (param: any) => string ->false : false ->(param): string => param : (param: any) => string ->param : any ->param : any ->null : null ->null : null - diff --git a/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).errors.txt new file mode 100644 index 0000000000000..517edcbb84c44 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).errors.txt @@ -0,0 +1,35 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,5): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,15): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,15): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,20): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,5): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,15): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,20): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (5 errors) ==== + a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~ +!!! error TS2304: Cannot find name 'e'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (4 errors) ==== + a ? b : (c) : d => e + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).js new file mode 100644 index 0000000000000..a090babb91655 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression17.ts] //// + +//// [fileJs.js] +a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +a ? b : (c) : d => e + + +//// [fileJs.js] +a ? b : function (c) { return e; }; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +a ? b : function (c) { return e; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).symbols new file mode 100644 index 0000000000000..6f0bd3183fa71 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon +>c : Symbol(c, Decl(fileJs.js, 0, 9)) +>d : Symbol(d) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? b : (c) : d => e +>c : Symbol(c, Decl(fileTs.ts, 0, 9)) +>d : Symbol(d) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).types new file mode 100644 index 0000000000000..a2937b0d0c534 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression17(target=es3).types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon +>a ? b : (c) : d => e : any +>a : any +>b : any +>(c) : d => e : (c: any) => d +>c : any +>e : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? b : (c) : d => e +>a ? b : (c) : d => e : any +>a : any +>b : any +>(c) : d => e : (c: any) => d +>c : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).errors.txt new file mode 100644 index 0000000000000..517edcbb84c44 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).errors.txt @@ -0,0 +1,35 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,5): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,15): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,15): error TS8010: Type annotations can only be used in TypeScript files. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,20): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'a'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,5): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,15): error TS2304: Cannot find name 'd'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,20): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (5 errors) ==== + a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS8010: Type annotations can only be used in TypeScript files. + ~ +!!! error TS2304: Cannot find name 'e'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (4 errors) ==== + a ? b : (c) : d => e + ~ +!!! error TS2304: Cannot find name 'a'. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'd'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).js new file mode 100644 index 0000000000000..469c9e2b852b2 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression17.ts] //// + +//// [fileJs.js] +a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon + +//// [fileTs.ts] +a ? b : (c) : d => e + + +//// [fileJs.js] +a ? b : (c) => e; // Not legal JS; "Unexpected token ':'" at last colon +//// [fileTs.js] +a ? b : (c) => e; diff --git a/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).symbols new file mode 100644 index 0000000000000..6f0bd3183fa71 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).symbols @@ -0,0 +1,10 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon +>c : Symbol(c, Decl(fileJs.js, 0, 9)) +>d : Symbol(d) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? b : (c) : d => e +>c : Symbol(c, Decl(fileTs.ts, 0, 9)) +>d : Symbol(d) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).types new file mode 100644 index 0000000000000..a2937b0d0c534 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression17(target=es6).types @@ -0,0 +1,18 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon +>a ? b : (c) : d => e : any +>a : any +>b : any +>(c) : d => e : (c: any) => d +>c : any +>e : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +a ? b : (c) : d => e +>a ? b : (c) : d => e : any +>a : any +>b : any +>(c) : d => e : (c: any) => d +>c : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).errors.txt new file mode 100644 index 0000000000000..2cc3ac5680d16 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'x'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'x'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (1 errors) ==== + x ? y => ({ y }) : z => ({ z }) // Legal JS + ~ +!!! error TS2304: Cannot find name 'x'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (1 errors) ==== + x ? y => ({ y }) : z => ({ z }) + ~ +!!! error TS2304: Cannot find name 'x'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).js new file mode 100644 index 0000000000000..2e9378dc55728 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts] //// + +//// [fileJs.js] +x ? y => ({ y }) : z => ({ z }) // Legal JS + +//// [fileTs.ts] +x ? y => ({ y }) : z => ({ z }) + + +//// [fileJs.js] +x ? function (y) { return ({ y: y }); } : function (z) { return ({ z: z }); }; // Legal JS +//// [fileTs.js] +x ? function (y) { return ({ y: y }); } : function (z) { return ({ z: z }); }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).symbols new file mode 100644 index 0000000000000..4dd217bbb811d --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +x ? y => ({ y }) : z => ({ z }) // Legal JS +>y : Symbol(y, Decl(fileJs.js, 0, 3)) +>y : Symbol(y, Decl(fileJs.js, 0, 11)) +>z : Symbol(z, Decl(fileJs.js, 0, 18)) +>z : Symbol(z, Decl(fileJs.js, 0, 26)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +x ? y => ({ y }) : z => ({ z }) +>y : Symbol(y, Decl(fileTs.ts, 0, 3)) +>y : Symbol(y, Decl(fileTs.ts, 0, 11)) +>z : Symbol(z, Decl(fileTs.ts, 0, 18)) +>z : Symbol(z, Decl(fileTs.ts, 0, 26)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).types new file mode 100644 index 0000000000000..842b0551be842 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8(target=es3).types @@ -0,0 +1,30 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +x ? y => ({ y }) : z => ({ z }) // Legal JS +>x ? y => ({ y }) : z => ({ z }) : ((y: any) => { y: any; }) | ((z: any) => { z: any; }) +>x : any +>y => ({ y }) : (y: any) => { y: any; } +>y : any +>({ y }) : { y: any; } +>{ y } : { y: any; } +>y : any +>z => ({ z }) : (z: any) => { z: any; } +>z : any +>({ z }) : { z: any; } +>{ z } : { z: any; } +>z : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +x ? y => ({ y }) : z => ({ z }) +>x ? y => ({ y }) : z => ({ z }) : ((y: any) => { y: any; }) | ((z: any) => { z: any; }) +>x : any +>y => ({ y }) : (y: any) => { y: any; } +>y : any +>({ y }) : { y: any; } +>{ y } : { y: any; } +>y : any +>z => ({ z }) : (z: any) => { z: any; } +>z : any +>({ z }) : { z: any; } +>{ z } : { z: any; } +>z : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).errors.txt new file mode 100644 index 0000000000000..2cc3ac5680d16 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).errors.txt @@ -0,0 +1,14 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'x'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'x'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (1 errors) ==== + x ? y => ({ y }) : z => ({ z }) // Legal JS + ~ +!!! error TS2304: Cannot find name 'x'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (1 errors) ==== + x ? y => ({ y }) : z => ({ z }) + ~ +!!! error TS2304: Cannot find name 'x'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).js new file mode 100644 index 0000000000000..e116ee9c9a662 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts] //// + +//// [fileJs.js] +x ? y => ({ y }) : z => ({ z }) // Legal JS + +//// [fileTs.ts] +x ? y => ({ y }) : z => ({ z }) + + +//// [fileJs.js] +x ? y => ({ y }) : z => ({ z }); // Legal JS +//// [fileTs.js] +x ? y => ({ y }) : z => ({ z }); diff --git a/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).symbols new file mode 100644 index 0000000000000..4dd217bbb811d --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).symbols @@ -0,0 +1,14 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +x ? y => ({ y }) : z => ({ z }) // Legal JS +>y : Symbol(y, Decl(fileJs.js, 0, 3)) +>y : Symbol(y, Decl(fileJs.js, 0, 11)) +>z : Symbol(z, Decl(fileJs.js, 0, 18)) +>z : Symbol(z, Decl(fileJs.js, 0, 26)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +x ? y => ({ y }) : z => ({ z }) +>y : Symbol(y, Decl(fileTs.ts, 0, 3)) +>y : Symbol(y, Decl(fileTs.ts, 0, 11)) +>z : Symbol(z, Decl(fileTs.ts, 0, 18)) +>z : Symbol(z, Decl(fileTs.ts, 0, 26)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).types new file mode 100644 index 0000000000000..842b0551be842 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression8(target=es6).types @@ -0,0 +1,30 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +x ? y => ({ y }) : z => ({ z }) // Legal JS +>x ? y => ({ y }) : z => ({ z }) : ((y: any) => { y: any; }) | ((z: any) => { z: any; }) +>x : any +>y => ({ y }) : (y: any) => { y: any; } +>y : any +>({ y }) : { y: any; } +>{ y } : { y: any; } +>y : any +>z => ({ z }) : (z: any) => { z: any; } +>z : any +>({ z }) : { z: any; } +>{ z } : { z: any; } +>z : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +x ? y => ({ y }) : z => ({ z }) +>x ? y => ({ y }) : z => ({ z }) : ((y: any) => { y: any; }) | ((z: any) => { z: any; }) +>x : any +>y => ({ y }) : (y: any) => { y: any; } +>y : any +>({ y }) : { y: any; } +>{ y } : { y: any; } +>y : any +>z => ({ z }) : (z: any) => { z: any; } +>z : any +>({ z }) : { z: any; } +>{ z } : { z: any; } +>z : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression8.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression8.errors.txt deleted file mode 100644 index 8afc1298a290f..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression8.errors.txt +++ /dev/null @@ -1,17 +0,0 @@ -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts(1,1): error TS2304: Cannot find name 'x'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts(1,20): error TS2304: Cannot find name 'z'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts(1,28): error TS18004: No value exists in scope for the shorthand property 'z'. Either declare one or provide an initializer. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts(2,1): error TS1005: ':' expected. - - -==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts (4 errors) ==== - x ? y => ({ y }) : z => ({ z }) - ~ -!!! error TS2304: Cannot find name 'x'. - ~ -!!! error TS2304: Cannot find name 'z'. - ~ -!!! error TS18004: No value exists in scope for the shorthand property 'z'. Either declare one or provide an initializer. - - -!!! error TS1005: ':' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression8.js b/tests/baselines/reference/parserArrowFunctionExpression8.js deleted file mode 100644 index a8738ac8603ec..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression8.js +++ /dev/null @@ -1,11 +0,0 @@ -//// [parserArrowFunctionExpression8.ts] -x ? y => ({ y }) : z => ({ z }) - - -//// [parserArrowFunctionExpression8.js] -x ? function (y) { return function (_a) { - var y = _a.y; - return ({ z: z }); -}; } - : -; diff --git a/tests/baselines/reference/parserArrowFunctionExpression8.symbols b/tests/baselines/reference/parserArrowFunctionExpression8.symbols deleted file mode 100644 index caae56c76fe18..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression8.symbols +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts === -x ? y => ({ y }) : z => ({ z }) ->y : Symbol(y, Decl(parserArrowFunctionExpression8.ts, 0, 3)) ->y : Symbol(y, Decl(parserArrowFunctionExpression8.ts, 0, 11)) ->z : Symbol(z) ->z : Symbol(z, Decl(parserArrowFunctionExpression8.ts, 0, 26)) - diff --git a/tests/baselines/reference/parserArrowFunctionExpression8.types b/tests/baselines/reference/parserArrowFunctionExpression8.types deleted file mode 100644 index 14d62f307fb56..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression8.types +++ /dev/null @@ -1,14 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts === -x ? y => ({ y }) : z => ({ z }) ->x ? y => ({ y }) : z => ({ z }) : any ->x : any ->y => ({ y }) : z => ({ z }) : (y: any) => ({ y }: { y: any; }) => z ->y : any ->({ y }) : z => ({ z }) : ({ y }: { y: any; }) => z ->y : any ->({ z }) : { z: any; } ->{ z } : { z: any; } ->z : any - -> : any - diff --git a/tests/baselines/reference/parserArrowFunctionExpression8Js.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression8Js.errors.txt deleted file mode 100644 index ceb5a1c616806..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression8Js.errors.txt +++ /dev/null @@ -1,20 +0,0 @@ -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js(1,1): error TS2304: Cannot find name 'x'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js(1,20): error TS2304: Cannot find name 'z'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js(1,20): error TS8010: Type annotations can only be used in TypeScript files. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js(1,28): error TS18004: No value exists in scope for the shorthand property 'z'. Either declare one or provide an initializer. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js(2,1): error TS1005: ':' expected. - - -==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js (5 errors) ==== - x ? y => ({ y }) : z => ({ z }) - ~ -!!! error TS2304: Cannot find name 'x'. - ~ -!!! error TS2304: Cannot find name 'z'. - ~ -!!! error TS8010: Type annotations can only be used in TypeScript files. - ~ -!!! error TS18004: No value exists in scope for the shorthand property 'z'. Either declare one or provide an initializer. - - -!!! error TS1005: ':' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression8Js.js b/tests/baselines/reference/parserArrowFunctionExpression8Js.js deleted file mode 100644 index 4de39348d9ba7..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression8Js.js +++ /dev/null @@ -1,11 +0,0 @@ -//// [file.js] -x ? y => ({ y }) : z => ({ z }) - - -//// [file.js] -x ? function (y) { return function (_a) { - var y = _a.y; - return ({ z: z }); -}; } - : -; diff --git a/tests/baselines/reference/parserArrowFunctionExpression8Js.symbols b/tests/baselines/reference/parserArrowFunctionExpression8Js.symbols deleted file mode 100644 index 09684043a2b3a..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression8Js.symbols +++ /dev/null @@ -1,7 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js === -x ? y => ({ y }) : z => ({ z }) ->y : Symbol(y, Decl(file.js, 0, 3)) ->y : Symbol(y, Decl(file.js, 0, 11)) ->z : Symbol(z) ->z : Symbol(z, Decl(file.js, 0, 26)) - diff --git a/tests/baselines/reference/parserArrowFunctionExpression8Js.types b/tests/baselines/reference/parserArrowFunctionExpression8Js.types deleted file mode 100644 index 392a558c184dd..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression8Js.types +++ /dev/null @@ -1,14 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/file.js === -x ? y => ({ y }) : z => ({ z }) ->x ? y => ({ y }) : z => ({ z }) : any ->x : any ->y => ({ y }) : z => ({ z }) : (y: any) => ({ y }: { y: any; }) => z ->y : any ->({ y }) : z => ({ z }) : ({ y }: { y: any; }) => z ->y : any ->({ z }) : { z: any; } ->{ z } : { z: any; } ->z : any - -> : any - diff --git a/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).errors.txt new file mode 100644 index 0000000000000..9c8657b5e6a17 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).errors.txt @@ -0,0 +1,26 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,6): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,16): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,6): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,16): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (3 errors) ==== + b ? (c) : d => e // Legal JS + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (3 errors) ==== + b ? (c) : d => e + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).js b/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).js new file mode 100644 index 0000000000000..524ea0bae4710 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts] //// + +//// [fileJs.js] +b ? (c) : d => e // Legal JS + +//// [fileTs.ts] +b ? (c) : d => e + + +//// [fileJs.js] +b ? (c) : function (d) { return e; }; // Legal JS +//// [fileTs.js] +b ? (c) : function (d) { return e; }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).symbols b/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).symbols new file mode 100644 index 0000000000000..daa9c3c63b0b6 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +b ? (c) : d => e // Legal JS +>d : Symbol(d, Decl(fileJs.js, 0, 9)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +b ? (c) : d => e +>d : Symbol(d, Decl(fileTs.ts, 0, 9)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).types b/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).types new file mode 100644 index 0000000000000..8266330d1ee2f --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9(target=es3).types @@ -0,0 +1,20 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +b ? (c) : d => e // Legal JS +>b ? (c) : d => e : any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +b ? (c) : d => e +>b ? (c) : d => e : any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).errors.txt b/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).errors.txt new file mode 100644 index 0000000000000..9c8657b5e6a17 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).errors.txt @@ -0,0 +1,26 @@ +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,1): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,6): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js(1,16): error TS2304: Cannot find name 'e'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,1): error TS2304: Cannot find name 'b'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,6): error TS2304: Cannot find name 'c'. +tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts(1,16): error TS2304: Cannot find name 'e'. + + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js (3 errors) ==== + b ? (c) : d => e // Legal JS + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + +==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts (3 errors) ==== + b ? (c) : d => e + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS2304: Cannot find name 'c'. + ~ +!!! error TS2304: Cannot find name 'e'. + \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).js b/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).js new file mode 100644 index 0000000000000..891fd4914fb99 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).js @@ -0,0 +1,13 @@ +//// [tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts] //// + +//// [fileJs.js] +b ? (c) : d => e // Legal JS + +//// [fileTs.ts] +b ? (c) : d => e + + +//// [fileJs.js] +b ? (c) : d => e; // Legal JS +//// [fileTs.js] +b ? (c) : d => e; diff --git a/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).symbols b/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).symbols new file mode 100644 index 0000000000000..daa9c3c63b0b6 --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +b ? (c) : d => e // Legal JS +>d : Symbol(d, Decl(fileJs.js, 0, 9)) + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +b ? (c) : d => e +>d : Symbol(d, Decl(fileTs.ts, 0, 9)) + diff --git a/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).types b/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).types new file mode 100644 index 0000000000000..8266330d1ee2f --- /dev/null +++ b/tests/baselines/reference/parserArrowFunctionExpression9(target=es6).types @@ -0,0 +1,20 @@ +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileJs.js === +b ? (c) : d => e // Legal JS +>b ? (c) : d => e : any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + +=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/fileTs.ts === +b ? (c) : d => e +>b ? (c) : d => e : any +>b : any +>(c) : any +>c : any +>d => e : (d: any) => any +>d : any +>e : any + diff --git a/tests/baselines/reference/parserArrowFunctionExpression9.errors.txt b/tests/baselines/reference/parserArrowFunctionExpression9.errors.txt deleted file mode 100644 index 9b36e3d364a81..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression9.errors.txt +++ /dev/null @@ -1,17 +0,0 @@ -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts(1,1): error TS2304: Cannot find name 'b'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts(1,11): error TS2304: Cannot find name 'd'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts(1,16): error TS2304: Cannot find name 'e'. -tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts(2,1): error TS1005: ':' expected. - - -==== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts (4 errors) ==== - b ? (c) : d => e - ~ -!!! error TS2304: Cannot find name 'b'. - ~ -!!! error TS2304: Cannot find name 'd'. - ~ -!!! error TS2304: Cannot find name 'e'. - - -!!! error TS1005: ':' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserArrowFunctionExpression9.js b/tests/baselines/reference/parserArrowFunctionExpression9.js deleted file mode 100644 index 43143882395f4..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression9.js +++ /dev/null @@ -1,8 +0,0 @@ -//// [parserArrowFunctionExpression9.ts] -b ? (c) : d => e - - -//// [parserArrowFunctionExpression9.js] -b ? function (c) { return e; } - : -; diff --git a/tests/baselines/reference/parserArrowFunctionExpression9.symbols b/tests/baselines/reference/parserArrowFunctionExpression9.symbols deleted file mode 100644 index 8b6cf75c11a6f..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression9.symbols +++ /dev/null @@ -1,5 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts === -b ? (c) : d => e ->c : Symbol(c, Decl(parserArrowFunctionExpression9.ts, 0, 5)) ->d : Symbol(d) - diff --git a/tests/baselines/reference/parserArrowFunctionExpression9.types b/tests/baselines/reference/parserArrowFunctionExpression9.types deleted file mode 100644 index e11b2e222f36c..0000000000000 --- a/tests/baselines/reference/parserArrowFunctionExpression9.types +++ /dev/null @@ -1,10 +0,0 @@ -=== tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts === -b ? (c) : d => e ->b ? (c) : d => e : any ->b : any ->(c) : d => e : (c: any) => d ->c : any ->e : any - -> : any - diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts index 7306fe2f8394c..29cfd32f60824 100644 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression10.ts @@ -1 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +a ? (b) : c => (d) : e => f // Not legal JS; "Unexpected token ':'" at last colon + +// @filename: fileTs.ts a ? (b) : c => (d) : e => f diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts index ba6a865daefe6..45fba14f34b60 100644 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression11.ts @@ -1 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +a ? b ? c : (d) : e => f // Legal JS + +// @filename: fileTs.ts a ? b ? c : (d) : e => f diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts index f8496e43c57d8..ccc809b6e0853 100644 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression12.ts @@ -1 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +a ? (b) => (c): d => e // Legal JS + +// @filename: fileTs.ts a ? (b) => (c): d => e diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts index 759558383e37c..5783dfa00ab17 100644 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression13.ts @@ -1 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +a ? () => a() : (): any => null; // Not legal JS; "Unexpected token ')'" at last paren + +// @filename: fileTs.ts a ? () => a() : (): any => null; diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts index 022a29552c2fb..fe652725585a4 100644 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression14.ts @@ -1 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +a() ? (b: number, c?: string): void => d() : e; // Not legal JS; "Unexpected token ':'" at first colon + +// @filename: fileTs.ts a() ? (b: number, c?: string): void => d() : e; diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression15.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression15.ts index 3348d24bfebe4..dfb7701ddf13f 100644 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression15.ts +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression15.ts @@ -1 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +false ? (param): string => param : null // Not legal JS; "Unexpected token ':'" at last colon + +// @filename: fileTs.ts false ? (param): string => param : null diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression16.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression16.ts index 9a19bfdb6cfc1..b02f17d7c95e8 100644 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression16.ts +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression16.ts @@ -1 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +true ? false ? (param): string => param : null : null // Not legal JS; "Unexpected token ':'" at last colon + +// @filename: fileTs.ts true ? false ? (param): string => param : null : null diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression17.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression17.ts new file mode 100644 index 0000000000000..adaa3aca3cb21 --- /dev/null +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression17.ts @@ -0,0 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +a ? b : (c) : d => e // Not legal JS; "Unexpected token ':'" at last colon + +// @filename: fileTs.ts +a ? b : (c) : d => e diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts index 4cc6e9445255f..1e8d7997a3c22 100644 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8.ts @@ -1 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +x ? y => ({ y }) : z => ({ z }) // Legal JS + +// @filename: fileTs.ts x ? y => ({ y }) : z => ({ z }) diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8Js.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8Js.ts deleted file mode 100644 index 551a2ae21fb96..0000000000000 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression8Js.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @filename: file.js -// @allowjs: true -// @checkjs: true -// @outdir: out - -x ? y => ({ y }) : z => ({ z }) diff --git a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts index 6aad757d7085d..c5e20613ec266 100644 --- a/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts +++ b/tests/cases/conformance/parser/ecmascript5/ArrowFunctionExpressions/parserArrowFunctionExpression9.ts @@ -1 +1,10 @@ +// @allowjs: true +// @checkjs: true +// @outdir: out +// @target: es3,es6 + +// @filename: fileJs.js +b ? (c) : d => e // Legal JS + +// @filename: fileTs.ts b ? (c) : d => e