* Use merge2, gulp-if, gulp-newer, and more projects * Add watch task * Working non-inline sourcemaps for runtests * browser tests now also loads sourcemaps from disk * Lazypipes and better services stream management * export interface used by other exported functions * Make goto-definition work for `this` parameter * Add new error for rest parameters * Add error message for rest parameter properties * Fix case when a document contains multiple script blocks with different base indentations. Use the base indent size if it is greater that the indentation of the inherited predecessor * Fix rwc-runner from breaking change in compiler (#9284) * Signatures use JSDoc to determine optionality * Changed implementation to use closure * Updated tests * Fixed linting error * Adding Code of Conduct notice * Don't crash when JS class property is self-referential. Fixes #9293 * Remove stale baselines * For optionality, check question token before JSDoc * Accept rest parameter properties error baselines * Change binding pattern parameter property error * Accept binding pattern properties error baselines * Lint * Port the sync version diagnostics API from tsserverVS-WIP branch to 2.0 * Do copyright without gulp-if and lazypipe * Change test comment and accept baseline * Remove tsd scripts task from gulpfile * Make use of module compiler option explicit, add strip internal to tsconfigs * Remove Signature#thisType and use Signature#thisParameter everywhere * Add Gulpfile lint to jake, fix lints * Change reference tests to verify actual ranges referenced and not just their count * Respond to PR comments * Add new lint rule * Fix object whitespace lints * Fix case of gulpfile dependencies * 1. pass subshell args 2. fix build order in services 1. /bin/sh requires its arguments joined into a single string unlike cmd. 2. services/ depends on a couple of files from server/ but the order was implicit, and changed from jakefile. Now the order is explicit in the tsconfig. * Fix single-quote lint * Check for exactly one space * Fix excess whitespace issues * Add matchFiles test to Gulpfile This was merged while the gulpfile was still in-progress * Fix LKG useDebug task and newLine flag * Update LKG * Clean before LKG in Gulpfile * Fix lint * Correct the api string name * Allow space in exec cmds * Fix typo * Add new APIs to protocol * Fix bug where `exports.` was prepended to namespace export accesses * Remove unnecessary parameter * extract expression into function * Add fourslash tests & address CR comments * Fix 8549: Using variable as Jsx tagname (#9337) * Parse JSXElement's name as property access instead of just entity name. So when one accesses property of the class through this, checker will check correctly * wip - just resolve to any type for now * Resolve string type to anytype and look up property in intrinsicElementsType of Jsx * Add tests and update baselines * Remove unneccessary comment * wip-address PR * Address PR * Add tets and update baselines * Fix linting error * Unused identifiers compiler code (#9200) * Code changes to update references of the Identifiers * Added code for handling function, method and coonstructor level local variables and parameters * Rebased with origin master * Code changes to handle unused private variables, private methods and typed parameters * Code changes to handle namespace level elements * Code changes to handle unimplemented interfaces * Code to optimize the d.ts check * Correct Code change to handle the parameters for methods inside interfaces * Fix for lint error * Remove Trailing whitespace * Code changes to handle interface implementations * Changes to display the error position correctly * Compiler Test Cases * Adding condition to ignore constructor parameters * Removing unnecessary tests * Additional changes for compiler code * Additional changes to handle constructor scenario * Fixing the consolidated case * Changed logic to search for private instead of public * Response to PR Comments * Changed the error code in test cases as result of merge with master * Adding the missing file * Adding the missing file II * Response to PR comments * Code changes for checking unused imports * Test Cases for Unused Imports * Response to PR comments * Code change specific to position of Import Declaration * Code change for handling the position for unused import * New scenarios for handling parameters in lambda function, type parameters in methods, etc. * Additional scenarios based on PR comments * Removing a redundant check * Added ambient check to imports and typeparatmeter reporting * Added one more scenario to handle type parameters * Added new scenario for TypeParameter on Interface * Refactoring the code * Added scenario to handle private class elements declared in constructor. * Minor change to erro reporting * Fix 8355: Fix emit metadata different between transpile and tsc --isolatedModule (#9232) * Instead of returning undefined for unknownSymbol return itself * Add Transpile unittest * Wip - Add project tests * Add project tests and baselines * Update existed tests * Add tests for emitting metadata with module targetting system * Fix 8467: Fix incorrect emit for accessing static property in static propertyDeclaration (#8551) * Fix incorrect emit for accessing static property in static propertyDeclaration * Update tests and baselines * Update function name * Fix when accessing static property inside arrow function * Add tests and baselines * do not format comma/closeparen in jsxelement * format jsx expression * Remove extra baselines * Fixed bugs and linting * Added project tests for node_modules JavaScript searches * Removed old TODO comment * make rules optional * Fixed the regexp for removing full paths * Fix type of the disableSizeLimit option * Update version to 2.0.0 * Remove upper boilerplate from issue template Our issue stats did not improve appreciably when we added the issue template. Reduce upper boilerplate text and try to make it more action-oriented * Remove unused compiler option (#9381) * Update LKG * Added emitHost method to return source from node modules * Marked new method internal * Update issue_template.md * new options should be optional for compatibility * Add getCurrentDirectory to ServerHost * Add nullchecks for typeRoots, remove getCurrentDirectory from ServerHost as it is always the installation location * VarDate interface and relevant Date.prototype members * Port 9396 to release 2.0 * Fix 9363: Object destructuring broken-variables are bound to the wrong object (#9383) * Fix emit incorrect destructuring mapping in var declaration * Add tests and baselines * Add additional tests and baselines * Fix crash in async functions when targetting ES5. When targetting ES5 and with --noImplicitReturns, an async function whose return type could not be determined would cause a compiler crash. * Add This type to lib * Merge master into release-2.0 (#9400) * do not format comma/closeparen in jsxelement * format jsx expression * make rules optional * Remove upper boilerplate from issue template Our issue stats did not improve appreciably when we added the issue template. Reduce upper boilerplate text and try to make it more action-oriented * Update issue_template.md * new options should be optional for compatibility * Add getCurrentDirectory to ServerHost * Add nullchecks for typeRoots, remove getCurrentDirectory from ServerHost as it is always the installation location * VarDate interface and relevant Date.prototype members * Fix 9363: Object destructuring broken-variables are bound to the wrong object (#9383) * Fix emit incorrect destructuring mapping in var declaration * Add tests and baselines * Add additional tests and baselines * Fix #9402: Do not report unused identifier errors for catch variables * getVarDate should be on the Date interface * Defere checking unsed identifier checks * Do not scan nodes preceding formatted region, just skip over them * Don't emit source files found under node_modules * Destructuring assignment removes undefined from type when default value is given * Add nullcheck when calculating indentations for implort clause * Use a deferred list to check for unused identifiers * push checks to checkUnusedIdentifiersDeferred * use isParameterPropertyDeclaration to test for paramter propoerties * runtests-parallel skips empty buckets Previously, it would enter them as buckets with no tests, which would make our test runners run *every* test. This was very obvious on machines with lots of cores. * Report unused identifiers in for statements * Do not check ambients, and overloads * Add tests * Consolidate type reference marking in getTypeFromTypeReference * Handel type aliases * Add tests * Add test * Dont load JavaScript if types packages are present * Renamed API * Use checkExpression, not checkExpressionCached * Do not report unused errors for module augmentations * Consolidate refernce marking in resolveName to allow marking aliases correctelly * add tests * Code review comments * Only mark symbols found in a local symbol table * Show "<unknown>" if the name of a declaration is unavailable * Parse `export default async function` as a declaration * Respond to PR comments * Better name for test * handel private properties correctelly * Port 9426 to release 2.0 * Handel Swtich statements check for locals on for statments only mark private properties * Removed one error to avoid full path issues * Don't emit source files found under node_modules (cherry picked from commit5f8cf1af3e
) * Dont load JavaScript if types packages are present (cherry picked from commit5a45c44eb7
) * Renamed API (cherry picked from commitd8047b607f
) * Removed one error to avoid full path issues (cherry picked from commit5e4f13f342
) * Fix incorrectly-saved quote symbols in ThirdPartyNoticeText.txt * Fix #9458: exclude parameters starting with underscore from unusedParamter checks * change variable name for strict mode * Increase timeout from running RWC. As UWDWeb takes slightly longer now (#9454) * Handle relative paths in tsconfig exclude and include globs * Merge master into release branch 06/30 (#9447) * do not format comma/closeparen in jsxelement * format jsx expression * make rules optional * Remove upper boilerplate from issue template Our issue stats did not improve appreciably when we added the issue template. Reduce upper boilerplate text and try to make it more action-oriented * Update issue_template.md * new options should be optional for compatibility * Add getCurrentDirectory to ServerHost * Add nullchecks for typeRoots, remove getCurrentDirectory from ServerHost as it is always the installation location * VarDate interface and relevant Date.prototype members * Fix 9363: Object destructuring broken-variables are bound to the wrong object (#9383) * Fix emit incorrect destructuring mapping in var declaration * Add tests and baselines * Add additional tests and baselines * Fix crash in async functions when targetting ES5. When targetting ES5 and with --noImplicitReturns, an async function whose return type could not be determined would cause a compiler crash. * Add This type to lib * getVarDate should be on the Date interface * Don't emit source files found under node_modules * Destructuring assignment removes undefined from type when default value is given * Add nullcheck when calculating indentations for implort clause * Add test * Dont load JavaScript if types packages are present * Renamed API * Use checkExpression, not checkExpressionCached * Show "<unknown>" if the name of a declaration is unavailable * Parse `export default async function` as a declaration * Removed one error to avoid full path issues * Fix incorrectly-saved quote symbols in ThirdPartyNoticeText.txt * Improve names of whitespace functions * Handle relative paths in tsconfig exclude and include globs Port 9475 to release 2.0 * add new method getEmitOutputObject to return result of the emit as object with properties instead of json string * fix linter * Fix PromiseLike to be compatible with es6-promise (#9484) * Fix reading files from IOLog because previous our API captures (#9483) * Fix reading files from IOLog because previous our API captures * Refactoring the ioLog * Exclude FlowSwitchClause from flow graph for case expressions * Add regression test * Update LKG * Update language in comment * Add .mailmap file * Add authors script to generate authors from repo * Update AUTHORS.md for release-2.0 * Update script to pass more than one argument * Remove the unused text buffer from ScriptInfo * Fix #9531: account for async as an contextual keyword when parsing export assignments * Update LKG * Swap q from a reference to an import * Fix #9550: exclude 'this' type parameters from unusedParameters checks. * Update comment to reflect new dependency * Avoid putting children tags in jsdoccomment * Parse the result of getDirectories call * Update harness getDirectories implementation for shims * Fix multiple Salsa assignment-declarations Previously, all assignment-declarations needed to be of the same kind: either all `this.p = ...` assignments or `C.prototype.p = ...` assignments. * Test for multiple salsa assignment-declarations * Add test for parsed @typedef tag node shape * Provide a symbol for salsa-inferred class types * Update .mailmap * Fix module tracking * Updated test with relative import * Fixed the node tracking and a harness bug * fixed lint error * Fixed implicit any * Added missing test files * Removed duplicate logic * Update conflicting baseline. PR #9574 added a baseline that #9578 caused to be changed. The two PRs went in so close to each other that the CI build didn't catch the change to the new test's baseline. * Fix type of JSXTagName * Update baselines to use double-quote * Update baselines when emitting metadata decorator * Update baselines for async-await function * Update baselines for comment in capturing down-level for...of and for...in * Add missing Transpile tests * Remove old JS transpile baselines * Passing program as argument in emitWorker * Port PR#9607 transforms * Port new JSDOC tests to use baseline * substitute alias for class expression in statics * Address new lint warnings * Change name for substitution function.
277 lines
10 KiB
Plaintext
277 lines
10 KiB
Plaintext
tests/cases/conformance/parser/ecmascript5/parserRealSource2.ts(4,1): error TS6053: File 'tests/cases/conformance/parser/ecmascript5/typescript.ts' not found.
|
|
|
|
|
|
==== tests/cases/conformance/parser/ecmascript5/parserRealSource2.ts (1 errors) ====
|
|
// Copyright (c) Microsoft. All rights reserved. Licensed under the Apache License, Version 2.0.
|
|
// See LICENSE.txt in the project root for complete license information.
|
|
|
|
///<reference path='typescript.ts' />
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
!!! error TS6053: File 'tests/cases/conformance/parser/ecmascript5/typescript.ts' not found.
|
|
|
|
module TypeScript {
|
|
|
|
export function hasFlag(val: number, flag: number) {
|
|
return (val & flag) != 0;
|
|
}
|
|
|
|
export enum ErrorRecoverySet {
|
|
None = 0,
|
|
Comma = 1, // Comma
|
|
SColon = 1 << 1, // SColon
|
|
Asg = 1 << 2, // Asg
|
|
BinOp = 1 << 3, // Lsh, Rsh, Rs2, Le, Ge, INSTANCEOF, EQ, NE, Eqv, NEqv, LogAnd, LogOr, AsgMul, AsgDiv
|
|
// AsgMod, AsgAdd, AsgSub, AsgLsh, AsgRsh, AsgRs2, AsgAnd, AsgXor, AsgOr, QMark, Mult, Div,
|
|
// Pct, GT, LT, And, Xor, Or
|
|
RBrack = 1 << 4, // RBrack
|
|
RCurly = 1 << 5, // RCurly
|
|
RParen = 1 << 6, // RParen
|
|
Dot = 1 << 7, // Dot
|
|
Colon = 1 << 8, // Colon
|
|
PrimType = 1 << 9, // number, string, boolean
|
|
AddOp = 1 << 10, // Add, Sub
|
|
LCurly = 1 << 11, // LCurly
|
|
PreOp = 1 << 12, // Tilde, Bang, Inc, Dec
|
|
RegExp = 1 << 13, // RegExp
|
|
LParen = 1 << 14, // LParen
|
|
LBrack = 1 << 15, // LBrack
|
|
Scope = 1 << 16, // Scope
|
|
In = 1 << 17, // IN
|
|
SCase = 1 << 18, // CASE, DEFAULT
|
|
Else = 1 << 19, // ELSE
|
|
Catch = 1 << 20, // CATCH, FINALLY
|
|
Var = 1 << 21, //
|
|
Stmt = 1 << 22, // BREAK, RETURN, THROW, DEBUGGER, FOR, SWITCH, DO, IF, TRY, WITH
|
|
While = 1 << 23, // WHILE
|
|
ID = 1 << 24, // ID
|
|
Prefix = 1 << 25, // VOID, DELETE, TYPEOF, AWAIT
|
|
Literal = 1 << 26, // IntCon, FltCon, StrCon
|
|
RLit = 1 << 27, // THIS, TRUE, FALSE, NULL
|
|
Func = 1 << 28, // FUNCTION
|
|
EOF = 1 << 29, // EOF
|
|
|
|
// REVIEW: Name this something clearer.
|
|
TypeScriptS = 1 << 30, // PROPERTY, PRIVATE, STATIC, INTERFACE, CLASS, MODULE, EXPORT, IMPORT
|
|
ExprStart = SColon | AddOp | LCurly | PreOp | RegExp | LParen | LBrack | ID | Prefix | RLit | Func | Literal,
|
|
StmtStart = ExprStart | SColon | Var | Stmt | While | TypeScriptS,
|
|
Postfix = Dot | LParen | LBrack,
|
|
}
|
|
|
|
export enum AllowedElements {
|
|
None = 0,
|
|
ModuleDeclarations = 1 << 2,
|
|
ClassDeclarations = 1 << 3,
|
|
InterfaceDeclarations = 1 << 4,
|
|
AmbientDeclarations = 1 << 10,
|
|
Properties = 1 << 11,
|
|
|
|
Global = ModuleDeclarations | ClassDeclarations | InterfaceDeclarations | AmbientDeclarations,
|
|
QuickParse = Global | Properties,
|
|
}
|
|
|
|
export enum Modifiers {
|
|
None = 0,
|
|
Private = 1,
|
|
Public = 1 << 1,
|
|
Readonly = 1 << 2,
|
|
Ambient = 1 << 3,
|
|
Exported = 1 << 4,
|
|
Getter = 1 << 5,
|
|
Setter = 1 << 6,
|
|
Static = 1 << 7,
|
|
}
|
|
|
|
export enum ASTFlags {
|
|
None = 0,
|
|
ExplicitSemicolon = 1, // statment terminated by an explicit semicolon
|
|
AutomaticSemicolon = 1 << 1, // statment terminated by an automatic semicolon
|
|
Writeable = 1 << 2, // node is lhs that can be modified
|
|
Error = 1 << 3, // node has an error
|
|
DotLHSPartial = 1 << 4, // node is the lhs of an incomplete dot expr at cursor
|
|
DotLHS = 1 << 5, // node is the lhs of a dot expr
|
|
IsStatement = 1 << 6, // node is a statement
|
|
StrictMode = 1 << 7, // node is in the strict mode environment
|
|
PossibleOptionalParameter = 1 << 8,
|
|
ClassBaseConstructorCall = 1 << 9,
|
|
OptionalName = 1 << 10,
|
|
// REVIEW: This flag is to mark lambda nodes to note that the LParen of an expression has already been matched in the lambda header.
|
|
// The flag is used to communicate this piece of information to the calling parseTerm, which intern will remove it.
|
|
// Once we have a better way to associate information with nodes, this flag should not be used.
|
|
SkipNextRParen = 1 << 11,
|
|
}
|
|
|
|
export enum DeclFlags {
|
|
None = 0,
|
|
Exported = 1,
|
|
Private = 1 << 1,
|
|
Public = 1 << 2,
|
|
Ambient = 1 << 3,
|
|
Static = 1 << 4,
|
|
LocalStatic = 1 << 5,
|
|
GetAccessor = 1 << 6,
|
|
SetAccessor = 1 << 7,
|
|
}
|
|
|
|
export enum ModuleFlags {
|
|
None = 0,
|
|
Exported = 1,
|
|
Private = 1 << 1,
|
|
Public = 1 << 2,
|
|
Ambient = 1 << 3,
|
|
Static = 1 << 4,
|
|
LocalStatic = 1 << 5,
|
|
GetAccessor = 1 << 6,
|
|
SetAccessor = 1 << 7,
|
|
IsEnum = 1 << 8,
|
|
ShouldEmitModuleDecl = 1 << 9,
|
|
IsWholeFile = 1 << 10,
|
|
IsDynamic = 1 << 11,
|
|
MustCaptureThis = 1 << 12,
|
|
}
|
|
|
|
export enum SymbolFlags {
|
|
None = 0,
|
|
Exported = 1,
|
|
Private = 1 << 1,
|
|
Public = 1 << 2,
|
|
Ambient = 1 << 3,
|
|
Static = 1 << 4,
|
|
LocalStatic = 1 << 5,
|
|
GetAccessor = 1 << 6,
|
|
SetAccessor = 1 << 7,
|
|
Property = 1 << 8,
|
|
Readonly = 1 << 9,
|
|
ModuleMember = 1 << 10,
|
|
InterfaceMember = 1 << 11,
|
|
ClassMember = 1 << 12,
|
|
BuiltIn = 1 << 13,
|
|
TypeSetDuringScopeAssignment = 1 << 14,
|
|
Constant = 1 << 15,
|
|
Optional = 1 << 16,
|
|
RecursivelyReferenced = 1 << 17,
|
|
Bound = 1 << 18,
|
|
CompilerGenerated = 1 << 19,
|
|
}
|
|
|
|
export enum VarFlags {
|
|
None = 0,
|
|
Exported = 1,
|
|
Private = 1 << 1,
|
|
Public = 1 << 2,
|
|
Ambient = 1 << 3,
|
|
Static = 1 << 4,
|
|
LocalStatic = 1 << 5,
|
|
GetAccessor = 1 << 6,
|
|
SetAccessor = 1 << 7,
|
|
AutoInit = 1 << 8,
|
|
Property = 1 << 9,
|
|
Readonly = 1 << 10,
|
|
Class = 1 << 11,
|
|
ClassProperty = 1 << 12,
|
|
ClassBodyProperty = 1 << 13,
|
|
ClassConstructorProperty = 1 << 14,
|
|
ClassSuperMustBeFirstCallInConstructor = 1 << 15,
|
|
Constant = 1 << 16,
|
|
MustCaptureThis = 1 << 17,
|
|
}
|
|
|
|
export enum FncFlags {
|
|
None = 0,
|
|
Exported = 1,
|
|
Private = 1 << 1,
|
|
Public = 1 << 2,
|
|
Ambient = 1 << 3,
|
|
Static = 1 << 4,
|
|
LocalStatic = 1 << 5,
|
|
GetAccessor = 1 << 6,
|
|
SetAccessor = 1 << 7,
|
|
Definition = 1 << 8,
|
|
Signature = 1 << 9,
|
|
Method = 1 << 10,
|
|
HasReturnExpression = 1 << 11,
|
|
CallMember = 1 << 12,
|
|
ConstructMember = 1 << 13,
|
|
HasSelfReference = 1 << 14,
|
|
IsFatArrowFunction = 1 << 15,
|
|
IndexerMember = 1 << 16,
|
|
IsFunctionExpression = 1 << 17,
|
|
ClassMethod = 1 << 18,
|
|
ClassPropertyMethodExported = 1 << 19,
|
|
}
|
|
|
|
export enum SignatureFlags {
|
|
None = 0,
|
|
IsIndexer = 1,
|
|
IsStringIndexer = 1 << 1,
|
|
IsNumberIndexer = 1 << 2,
|
|
}
|
|
|
|
export function ToDeclFlags(fncFlags: FncFlags) : DeclFlags;
|
|
export function ToDeclFlags(varFlags: VarFlags) : DeclFlags;
|
|
export function ToDeclFlags(symFlags: SymbolFlags): DeclFlags;
|
|
export function ToDeclFlags(moduleFlags: ModuleFlags): DeclFlags;
|
|
export function ToDeclFlags(fncOrVarOrSymbolOrModuleFlags: any) {
|
|
return <DeclFlags>fncOrVarOrSymbolOrModuleFlags;
|
|
}
|
|
|
|
export enum TypeFlags {
|
|
None = 0,
|
|
HasImplementation = 1,
|
|
HasSelfReference = 1 << 1,
|
|
MergeResult = 1 << 2,
|
|
IsEnum = 1 << 3,
|
|
BuildingName = 1 << 4,
|
|
HasBaseType = 1 << 5,
|
|
HasBaseTypeOfObject = 1 << 6,
|
|
IsClass = 1 << 7,
|
|
}
|
|
|
|
export enum TypeRelationshipFlags {
|
|
SuccessfulComparison = 0,
|
|
SourceIsNullTargetIsVoidOrUndefined = 1,
|
|
RequiredPropertyIsMissing = 1 << 1,
|
|
IncompatibleSignatures = 1 << 2,
|
|
SourceSignatureHasTooManyParameters = 3,
|
|
IncompatibleReturnTypes = 1 << 4,
|
|
IncompatiblePropertyTypes = 1 << 5,
|
|
IncompatibleParameterTypes = 1 << 6,
|
|
}
|
|
|
|
export enum CodeGenTarget {
|
|
ES3 = 0,
|
|
ES5 = 1,
|
|
}
|
|
|
|
export enum ModuleGenTarget {
|
|
Synchronous = 0,
|
|
Asynchronous = 1,
|
|
Local = 1 << 1,
|
|
}
|
|
|
|
// Compiler defaults to generating ES5-compliant code for
|
|
// - getters and setters
|
|
export var codeGenTarget: CodeGenTarget = CodeGenTarget.ES3;
|
|
|
|
export var moduleGenTarget: ModuleGenTarget = ModuleGenTarget.Synchronous;
|
|
|
|
export var optimizeModuleCodeGen = true;
|
|
|
|
export function flagsToString(e, flags: number): string {
|
|
var builder = "";
|
|
for (var i = 1; i < (1 << 31) ; i = i << 1) {
|
|
if ((flags & i) != 0) {
|
|
for (var k in e) {
|
|
if (e[k] == i) {
|
|
if (builder.length > 0) {
|
|
builder += "|";
|
|
}
|
|
builder += k;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return builder;
|
|
}
|
|
|
|
} |