From e223b2e53cf0c7afab71e15e556fe4b9c8ca4011 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Wed, 6 Jan 2016 12:47:26 -0800 Subject: [PATCH 01/34] Clean up unrelated changes --- src/compiler/binder.ts | 31 +- src/compiler/checker.ts | 382 +++++++++++++++--- src/compiler/parser.ts | 284 +++++++------ src/compiler/scanner.ts | 97 +++++ src/compiler/sys.ts | 2 - src/compiler/types.ts | 8 +- src/compiler/utilities.ts | 69 +++- src/harness/fourslash.ts | 25 ++ src/harness/harness.ts | 2 +- src/server/server.ts | 46 +++ src/server/session.ts | 4 +- src/services/services.ts | 2 +- .../jsFileCompilationSyntaxError.errors.txt | 5 +- tests/cases/fourslash/completionInJsDoc.ts | 8 +- .../fourslash/getJavaScriptCompletions1.ts | 10 + .../fourslash/getJavaScriptCompletions10.ts | 11 + .../fourslash/getJavaScriptCompletions11.ts | 11 + .../fourslash/getJavaScriptCompletions12.ts | 36 ++ .../fourslash/getJavaScriptCompletions13.ts | 26 ++ .../fourslash/getJavaScriptCompletions14.ts | 13 + .../fourslash/getJavaScriptCompletions15.ts | 29 ++ .../fourslash/getJavaScriptCompletions2.ts | 10 + .../fourslash/getJavaScriptCompletions3.ts | 10 + .../fourslash/getJavaScriptCompletions4.ts | 10 + .../fourslash/getJavaScriptCompletions5.ts | 15 + .../fourslash/getJavaScriptCompletions6.ts | 13 + .../fourslash/getJavaScriptCompletions7.ts | 13 + .../fourslash/getJavaScriptCompletions8.ts | 12 + .../fourslash/getJavaScriptCompletions9.ts | 12 + .../fourslash/getJavaScriptQuickInfo1.ts | 9 + .../fourslash/getJavaScriptQuickInfo2.ts | 9 + .../fourslash/getJavaScriptQuickInfo3.ts | 9 + .../fourslash/getJavaScriptQuickInfo4.ts | 9 + .../fourslash/getJavaScriptQuickInfo5.ts | 9 + .../fourslash/getJavaScriptQuickInfo6.ts | 9 + .../fourslash/getJavaScriptQuickInfo7.ts | 10 + .../fourslash/javaScriptModulesError1.ts | 12 + tests/cases/unittests/jsDocParsing.ts | 35 +- 38 files changed, 1053 insertions(+), 254 deletions(-) create mode 100644 tests/cases/fourslash/getJavaScriptCompletions1.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions10.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions11.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions12.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions13.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions14.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions15.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions2.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions3.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions4.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions5.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions6.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions7.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions8.ts create mode 100644 tests/cases/fourslash/getJavaScriptCompletions9.ts create mode 100644 tests/cases/fourslash/getJavaScriptQuickInfo1.ts create mode 100644 tests/cases/fourslash/getJavaScriptQuickInfo2.ts create mode 100644 tests/cases/fourslash/getJavaScriptQuickInfo3.ts create mode 100644 tests/cases/fourslash/getJavaScriptQuickInfo4.ts create mode 100644 tests/cases/fourslash/getJavaScriptQuickInfo5.ts create mode 100644 tests/cases/fourslash/getJavaScriptQuickInfo6.ts create mode 100644 tests/cases/fourslash/getJavaScriptQuickInfo7.ts create mode 100644 tests/cases/fourslash/javaScriptModulesError1.ts diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index f7108c5d2d7..6b63cbdb5df 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -240,6 +240,15 @@ namespace ts { case SyntaxKind.FunctionDeclaration: case SyntaxKind.ClassDeclaration: return node.flags & NodeFlags.Default ? "default" : undefined; + case SyntaxKind.JSDocFunctionType: + return isJSDocConstructSignature(node) ? "__new" : "__call"; + case SyntaxKind.Parameter: + // Parameters with names are handled at the top of this function. Parameters + // without names can only come from JSDocFunctionTypes. + Debug.assert(node.parent.kind === SyntaxKind.JSDocFunctionType); + let functionType = node.parent; + let index = indexOf(functionType.parameters, node); + return "p" + index; } } @@ -405,7 +414,6 @@ namespace ts { addToContainerChain(container); } - else if (containerFlags & ContainerFlags.IsBlockScopedContainer) { blockScopeContainer = node; blockScopeContainer.locals = undefined; @@ -440,6 +448,10 @@ namespace ts { labelStack = labelIndexMap = implicitLabels = undefined; } + if (isInJavaScriptFile(node) && node.jsDocComment) { + bind(node.jsDocComment); + } + bindReachableStatement(node); if (currentReachabilityState === Reachability.Reachable && isFunctionLikeKind(kind) && nodeIsPresent((node).body)) { @@ -688,8 +700,9 @@ namespace ts { case SyntaxKind.ClassDeclaration: case SyntaxKind.InterfaceDeclaration: case SyntaxKind.EnumDeclaration: - case SyntaxKind.TypeLiteral: case SyntaxKind.ObjectLiteralExpression: + case SyntaxKind.TypeLiteral: + case SyntaxKind.JSDocRecordType: return ContainerFlags.IsContainer; case SyntaxKind.CallSignature: @@ -775,6 +788,7 @@ namespace ts { case SyntaxKind.TypeLiteral: case SyntaxKind.ObjectLiteralExpression: case SyntaxKind.InterfaceDeclaration: + case SyntaxKind.JSDocRecordType: // Interface/Object-types always have their children added to the 'members' of // their container. They are only accessible through an instance of their // container, and are never in scope otherwise (even inside the body of the @@ -795,6 +809,7 @@ namespace ts { case SyntaxKind.FunctionDeclaration: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: + case SyntaxKind.JSDocFunctionType: case SyntaxKind.TypeAliasDeclaration: // All the children of these container types are never visible through another // symbol (i.e. through another symbol's 'exports' or 'members'). Instead, @@ -873,7 +888,7 @@ namespace ts { } } - function bindFunctionOrConstructorType(node: SignatureDeclaration) { + function bindFunctionOrConstructorTypeOrJSDocFunctionType(node: SignatureDeclaration): void { // For a given function symbol "<...>(...) => T" we want to generate a symbol identical // to the one we would get for: { <...>(...): T } // @@ -948,7 +963,7 @@ namespace ts { declareModuleMember(node, symbolFlags, symbolExcludes); break; } - // fall through. + // fall through. default: if (!blockScopeContainer.locals) { blockScopeContainer.locals = {}; @@ -1227,12 +1242,14 @@ namespace ts { return bindVariableDeclarationOrBindingElement(node); case SyntaxKind.PropertyDeclaration: case SyntaxKind.PropertySignature: + case SyntaxKind.JSDocRecordMember: return bindPropertyOrMethodOrAccessor(node, SymbolFlags.Property | ((node).questionToken ? SymbolFlags.Optional : SymbolFlags.None), SymbolFlags.PropertyExcludes); case SyntaxKind.PropertyAssignment: case SyntaxKind.ShorthandPropertyAssignment: return bindPropertyOrMethodOrAccessor(node, SymbolFlags.Property, SymbolFlags.PropertyExcludes); case SyntaxKind.EnumMember: return bindPropertyOrMethodOrAccessor(node, SymbolFlags.EnumMember, SymbolFlags.EnumMemberExcludes); + case SyntaxKind.CallSignature: case SyntaxKind.ConstructSignature: case SyntaxKind.IndexSignature: @@ -1256,8 +1273,10 @@ namespace ts { return bindPropertyOrMethodOrAccessor(node, SymbolFlags.SetAccessor, SymbolFlags.SetAccessorExcludes); case SyntaxKind.FunctionType: case SyntaxKind.ConstructorType: - return bindFunctionOrConstructorType(node); + case SyntaxKind.JSDocFunctionType: + return bindFunctionOrConstructorTypeOrJSDocFunctionType(node); case SyntaxKind.TypeLiteral: + case SyntaxKind.JSDocRecordType: return bindAnonymousDeclaration(node, SymbolFlags.TypeLiteral, "__type"); case SyntaxKind.ObjectLiteralExpression: return bindObjectLiteralExpression(node); @@ -1269,6 +1288,8 @@ namespace ts { case SyntaxKind.CallExpression: if (isInJavaScriptFile(node)) { + // We're only inspecting call expressions to detect CommonJS modules, so we can skip + // this check if we've already seen the module indicator bindCallExpression(node); } break; diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index fb4af5d7298..a2e76ea488e 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -164,8 +164,6 @@ namespace ts { let getGlobalPromiseConstructorLikeType: () => ObjectType; let getGlobalThenableType: () => ObjectType; - let jsxElementClassType: Type; - let deferredNodes: Node[]; const tupleTypes: Map = {}; @@ -546,7 +544,9 @@ namespace ts { // - Type parameters of a function are in scope in the entire function declaration, including the parameter // list and return type. However, local types are only in scope in the function body. // - parameters are only in the scope of function body - if (meaning & result.flags & SymbolFlags.Type) { + // This restriction does not apply to JSDoc comment types because they are parented + // at a higher level than type parameters would normally be + if (meaning & result.flags & SymbolFlags.Type && lastLocation.kind !== SyntaxKind.JSDocComment) { useResult = result.flags & SymbolFlags.TypeParameter // type parameters are visible in parameter list, return type and type parameter list ? lastLocation === (location).type || @@ -2518,8 +2518,54 @@ namespace ts { return type; } + function getTypeForVariableLikeDeclarationFromJSDocComment(declaration: VariableLikeDeclaration) { + const jsDocType = getJSDocTypeForVariableLikeDeclarationFromJSDocComment(declaration); + if (jsDocType) { + return getTypeFromTypeNode(jsDocType); + } + } + + function getJSDocTypeForVariableLikeDeclarationFromJSDocComment(declaration: VariableLikeDeclaration): JSDocType { + // First, see if this node has an @type annotation on it directly. + const typeTag = getJSDocTypeTag(declaration); + if (typeTag) { + return typeTag.typeExpression.type; + } + + if (declaration.kind === SyntaxKind.VariableDeclaration && + declaration.parent.kind === SyntaxKind.VariableDeclarationList && + declaration.parent.parent.kind === SyntaxKind.VariableStatement) { + + // @type annotation might have been on the variable statement, try that instead. + const annotation = getJSDocTypeTag(declaration.parent.parent); + if (annotation) { + return annotation.typeExpression.type; + } + } + else if (declaration.kind === SyntaxKind.Parameter) { + // If it's a parameter, see if the parent has a jsdoc comment with an @param + // annotation. + const paramTag = getCorrespondingJSDocParameterTag(declaration); + if (paramTag && paramTag.typeExpression) { + return paramTag.typeExpression.type; + } + } + + return undefined; + } + // Return the inferred type for a variable, parameter, or property declaration function getTypeForVariableLikeDeclaration(declaration: VariableLikeDeclaration): Type { + if (declaration.parserContextFlags & ParserContextFlags.JavaScriptFile) { + // If this is a variable in a JavaScript file, then use the JSDoc type (if it has + // one as its type), otherwise fallback to the below standard TS codepaths to + // try to figure it out. + const type = getTypeForVariableLikeDeclarationFromJSDocComment(declaration); + if (type && type !== unknownType) { + return type; + } + } + // A variable declared in a for..in statement is always of type any if (declaration.parent.parent.kind === SyntaxKind.ForInStatement) { return anyType; @@ -3837,6 +3883,21 @@ namespace ts { return getIndexTypeOfStructuredType(getApparentType(type), kind); } + function getTypeParametersFromSignatureDeclaration(declaration: SignatureDeclaration): TypeParameter[] { + if (declaration.parserContextFlags & ParserContextFlags.JavaScriptFile) { + const templateTag = getJSDocTemplateTag(declaration); + if (templateTag) { + return getTypeParametersFromDeclaration(templateTag.typeParameters); + } + } + + if (declaration.typeParameters) { + return getTypeParametersFromDeclaration(declaration.typeParameters); + } + + return undefined; + } + // Return list of type parameters with duplicates removed (duplicate identifier errors are generated in the actual // type checking functions). function getTypeParametersFromDeclaration(typeParameterDeclarations: TypeParameterDeclaration[]): TypeParameter[] { @@ -3860,12 +3921,33 @@ namespace ts { return result; } - function isOptionalParameter(node: ParameterDeclaration) { + function isOptionalParameter(node: ParameterDeclaration, skipSignatureCheck?: boolean) { + if (node.parserContextFlags & ParserContextFlags.JavaScriptFile) { + if (node.type && node.type.kind === SyntaxKind.JSDocOptionalType) { + return true; + } + + const paramTag = getCorrespondingJSDocParameterTag(node); + if (paramTag) { + if (paramTag.isBracketed) { + return true; + } + + if (paramTag.typeExpression) { + return paramTag.typeExpression.type.kind === SyntaxKind.JSDocOptionalType; + } + } + } + if (hasQuestionToken(node)) { return true; } if (node.initializer) { + if (skipSignatureCheck) { + return true; + } + const signatureDeclaration = node.parent; const signature = getSignatureFromDeclaration(signatureDeclaration); const parameterIndex = ts.indexOf(signatureDeclaration.parameters, node); @@ -3901,12 +3983,20 @@ namespace ts { getDeclaredTypeOfClassOrInterface(getMergedSymbol((declaration.parent).symbol)) : undefined; const typeParameters = classType ? classType.localTypeParameters : - declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; + declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : + getTypeParametersFromSignatureDeclaration(declaration); const parameters: Symbol[] = []; let hasStringLiterals = false; let minArgumentCount = -1; - for (let i = 0, n = declaration.parameters.length; i < n; i++) { + const isJSConstructSignature = isJSDocConstructSignature(declaration); + let returnType: Type = undefined; + + // If this is a JSDoc construct signature, then skip the first parameter in the + // parameter list. The first parameter represents the return type of the construct + // signature. + for (let i = isJSConstructSignature ? 1 : 0, n = declaration.parameters.length; i < n; i++) { const param = declaration.parameters[i]; + let paramSymbol = param.symbol; // Include parameter symbol instead of property symbol in the signature if (paramSymbol && !!(paramSymbol.flags & SymbolFlags.Property) && !isBindingPattern(param.name)) { @@ -3914,6 +4004,7 @@ namespace ts { paramSymbol = resolvedSymbol; } parameters.push(paramSymbol); + if (param.type && param.type.kind === SyntaxKind.StringLiteralType) { hasStringLiterals = true; } @@ -3933,14 +4024,24 @@ namespace ts { minArgumentCount = declaration.parameters.length; } - let returnType: Type; - if (classType) { + if (isJSConstructSignature) { + minArgumentCount--; + returnType = getTypeFromTypeNode(declaration.parameters[0].type); + } + else if (classType) { returnType = classType; } else if (declaration.type) { returnType = getTypeFromTypeNode(declaration.type); } else { + if (declaration.parserContextFlags & ParserContextFlags.JavaScriptFile) { + const type = getReturnTypeFromJSDocComment(declaration); + if (type && type !== unknownType) { + returnType = type; + } + } + // TypeScript 1.0 spec (April 2014): // If only one accessor includes a type annotation, the other behaves as if it had the same type annotation. if (declaration.kind === SyntaxKind.GetAccessor && !hasDynamicName(declaration)) { @@ -3977,6 +4078,7 @@ namespace ts { case SyntaxKind.SetAccessor: case SyntaxKind.FunctionExpression: case SyntaxKind.ArrowFunction: + case SyntaxKind.JSDocFunctionType: // Don't include signature if node is the implementation of an overloaded function. A node is considered // an implementation node if it has a body and the previous node is of the same kind and immediately // precedes the implementation node (i.e. has the same parent and ends where the implementation starts). @@ -4196,7 +4298,7 @@ namespace ts { } // Get type from reference to class or interface - function getTypeFromClassOrInterfaceReference(node: TypeReferenceNode | ExpressionWithTypeArguments, symbol: Symbol): Type { + function getTypeFromClassOrInterfaceReference(node: TypeReferenceNode | ExpressionWithTypeArguments | JSDocTypeReference, symbol: Symbol): Type { const type = getDeclaredTypeOfSymbol(symbol); const typeParameters = type.localTypeParameters; if (typeParameters) { @@ -4219,7 +4321,7 @@ namespace ts { // Get type from reference to type alias. When a type alias is generic, the declared type of the type alias may include // references to the type parameters of the alias. We replace those with the actual type arguments by instantiating the // declared type. Instantiations are cached using the type identities of the type arguments as the key. - function getTypeFromTypeAliasReference(node: TypeReferenceNode | ExpressionWithTypeArguments, symbol: Symbol): Type { + function getTypeFromTypeAliasReference(node: TypeReferenceNode | ExpressionWithTypeArguments | JSDocTypeReference, symbol: Symbol): Type { const type = getDeclaredTypeOfSymbol(symbol); const links = getSymbolLinks(symbol); const typeParameters = links.typeParameters; @@ -4240,7 +4342,7 @@ namespace ts { } // Get type from reference to named type that cannot be generic (enum or type parameter) - function getTypeFromNonGenericTypeReference(node: TypeReferenceNode | ExpressionWithTypeArguments, symbol: Symbol): Type { + function getTypeFromNonGenericTypeReference(node: TypeReferenceNode | ExpressionWithTypeArguments | JSDocTypeReference, symbol: Symbol): Type { if (node.typeArguments) { error(node, Diagnostics.Type_0_is_not_generic, symbolToString(symbol)); return unknownType; @@ -4248,18 +4350,90 @@ namespace ts { return getDeclaredTypeOfSymbol(symbol); } - function getTypeFromTypeReference(node: TypeReferenceNode | ExpressionWithTypeArguments): Type { + function getTypeReferenceName(node: TypeReferenceNode | ExpressionWithTypeArguments | JSDocTypeReference): LeftHandSideExpression | EntityName { + switch (node.kind) { + case SyntaxKind.TypeReference: + return (node).typeName; + case SyntaxKind.JSDocTypeReference: + return (node).name; + case SyntaxKind.ExpressionWithTypeArguments: + // We only support expressions that are simple qualified names. For other + // expressions this produces undefined. + if (isSupportedExpressionWithTypeArguments(node)) { + return (node).expression; + } + + // fall through; + } + + return undefined; + } + + function resolveTypeReferenceName( + node: TypeReferenceNode | ExpressionWithTypeArguments | JSDocTypeReference, + typeReferenceName: LeftHandSideExpression | EntityName) { + + if (!typeReferenceName) { + return unknownSymbol; + } + + let symbol = resolveEntityName(typeReferenceName, SymbolFlags.Type); + if (!symbol && node.kind === SyntaxKind.JSDocTypeReference) { + // If the reference didn't resolve to a type, try seeing if results to a + // value. If it does, get the type of that value. + symbol = resolveEntityName(typeReferenceName, SymbolFlags.Value); + } + + return symbol || unknownSymbol; + } + + function getTypeReferenceType(node: TypeReferenceNode | ExpressionWithTypeArguments | JSDocTypeReference, symbol: Symbol) { + if (symbol === unknownSymbol) { + return unknownType; + } + + if (symbol.flags & (SymbolFlags.Class | SymbolFlags.Interface)) { + return getTypeFromClassOrInterfaceReference(node, symbol); + } + + if (symbol.flags & SymbolFlags.TypeAlias) { + return getTypeFromTypeAliasReference(node, symbol); + } + + if (symbol.flags & SymbolFlags.Value && node.kind === SyntaxKind.JSDocTypeReference) { + // A JSDocTypeReference may have resolved to a value (as opposed to a type). In + // that case, the type of this reference is just the type of the value we resolved + // to. + return getTypeOfSymbol(symbol); + } + + return getTypeFromNonGenericTypeReference(node, symbol); + } + + function getTypeFromTypeReference(node: TypeReferenceNode | ExpressionWithTypeArguments | JSDocTypeReference): Type { const links = getNodeLinks(node); if (!links.resolvedType) { - // We only support expressions that are simple qualified names. For other expressions this produces undefined. - const typeNameOrExpression = node.kind === SyntaxKind.TypeReference ? (node).typeName : - isSupportedExpressionWithTypeArguments(node) ? (node).expression : - undefined; - const symbol = typeNameOrExpression && resolveEntityName(typeNameOrExpression, SymbolFlags.Type) || unknownSymbol; - const type = symbol === unknownSymbol ? unknownType : - symbol.flags & (SymbolFlags.Class | SymbolFlags.Interface) ? getTypeFromClassOrInterfaceReference(node, symbol) : - symbol.flags & SymbolFlags.TypeAlias ? getTypeFromTypeAliasReference(node, symbol) : - getTypeFromNonGenericTypeReference(node, symbol); + let symbol: Symbol; + let type: Type; + if (node.kind === SyntaxKind.JSDocTypeReference) { + const typeReferenceName = getTypeReferenceName(node); + symbol = resolveTypeReferenceName(node, typeReferenceName); + type = getTypeReferenceType(node, symbol); + + links.resolvedSymbol = symbol; + links.resolvedType = type; + } + else { + // We only support expressions that are simple qualified names. For other expressions this produces undefined. + const typeNameOrExpression = node.kind === SyntaxKind.TypeReference ? (node).typeName : + isSupportedExpressionWithTypeArguments(node) ? (node).expression : + undefined; + symbol = typeNameOrExpression && resolveEntityName(typeNameOrExpression, SymbolFlags.Type) || unknownSymbol; + type = symbol === unknownSymbol ? unknownType : + symbol.flags & (SymbolFlags.Class | SymbolFlags.Interface) ? getTypeFromClassOrInterfaceReference(node, symbol) : + symbol.flags & SymbolFlags.TypeAlias ? getTypeFromTypeAliasReference(node, symbol) : + getTypeFromNonGenericTypeReference(node, symbol); + } // Cache both the resolved symbol and the resolved type. The resolved symbol is needed in when we check the // type reference in checkTypeReferenceOrExpressionWithTypeArguments. links.resolvedSymbol = symbol; @@ -4554,6 +4728,62 @@ namespace ts { return links.resolvedType; } + function getTypeFromJSDocFunctionType(node: JSDocFunctionType): Type { + Debug.assert(!!node.symbol); + const links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = createObjectType(TypeFlags.Anonymous, node.symbol); + } + return links.resolvedType; + } + + function getTypeFromJSDocRecordType(node: JSDocRecordType): Type { + const links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = createObjectType(TypeFlags.Anonymous, node.symbol); + } + return links.resolvedType; + } + + function getTypeFromJSDocVariadicType(node: JSDocVariadicType): Type { + const links = getNodeLinks(node); + if (!links.resolvedType) { + const type = getTypeFromTypeNode(node.type); + links.resolvedType = type ? createArrayType(type) : unknownType; + } + return links.resolvedType; + } + + function getTypeFromJSDocTypeReference(node: JSDocTypeReference): Type { + return getTypeFromTypeReference(node); + } + + function getTypeFromJSDocArrayType(node: JSDocArrayType): Type { + const links = getNodeLinks(node); + if (!links.resolvedType) { + links.resolvedType = createArrayType(getTypeFromTypeNode(node.elementType)); + } + return links.resolvedType; + } + + function getTypeFromJSDocUnionType(node: JSDocUnionType): Type { + const links = getNodeLinks(node); + if (!links.resolvedType) { + const types = map(node.types, getTypeFromTypeNode); + links.resolvedType = getUnionType(types, /*noSubtypeReduction*/ true); + } + return links.resolvedType; + } + + function getTypeFromJSDocTupleType(node: JSDocTupleType): Type { + const links = getNodeLinks(node); + if (!links.resolvedType) { + const types = map(node.types, getTypeFromTypeNode); + links.resolvedType = createTupleType(types); + } + return links.resolvedType; + } + function getThisType(node: TypeNode): Type { const container = getThisContainer(node, /*includeArrowFunctions*/ false); const parent = container && container.parent; @@ -4640,6 +4870,34 @@ namespace ts { case SyntaxKind.QualifiedName: const symbol = getSymbolAtLocation(node); return symbol && getDeclaredTypeOfSymbol(symbol); + case SyntaxKind.JSDocAllType: + return anyType; + case SyntaxKind.JSDocUnknownType: + return unknownType; + case SyntaxKind.JSDocArrayType: + return getTypeFromJSDocArrayType(node); + case SyntaxKind.JSDocTupleType: + return getTypeFromJSDocTupleType(node); + case SyntaxKind.JSDocUnionType: + return getTypeFromJSDocUnionType(node); + case SyntaxKind.JSDocNullableType: + return getTypeFromTypeNode((node).type); + case SyntaxKind.JSDocNonNullableType: + return getTypeFromTypeNode((node).type); + case SyntaxKind.JSDocTypeReference: + return getTypeFromJSDocTypeReference(node); + case SyntaxKind.JSDocOptionalType: + return getTypeFromTypeNode((node).type); + case SyntaxKind.JSDocFunctionType: + return getTypeFromJSDocFunctionType(node); + case SyntaxKind.JSDocVariadicType: + return getTypeFromJSDocVariadicType(node); + case SyntaxKind.JSDocConstructorType: + return getTypeFromTypeNode((node).type); + case SyntaxKind.JSDocRecordType: + return getTypeFromJSDocRecordType(node); + case SyntaxKind.JSDocThisType: + return getTypeFromTypeNode((node).type); default: return unknownType; } @@ -7062,6 +7320,13 @@ namespace ts { return container.flags & NodeFlags.Static ? getTypeOfSymbol(symbol) : (getDeclaredTypeOfSymbol(symbol)).thisType; } + if (container.parserContextFlags & ParserContextFlags.JavaScriptFile) { + const type = getTypeForThisExpressionFromJSDoc(container); + if (type && type !== unknownType) { + return type; + } + } + // If this is a function in a JS file, it might be a class method. Check if it's the RHS // of a x.prototype.y = function [name]() { .... } if (isInJavaScriptFile(node) && container.kind === SyntaxKind.FunctionExpression) { @@ -7081,6 +7346,16 @@ namespace ts { return anyType; } + function getTypeForThisExpressionFromJSDoc(node: Node) { + const typeTag = getJSDocTypeTag(node); + if (typeTag && typeTag.typeExpression.type.kind === SyntaxKind.JSDocFunctionType) { + const jsDocFunctionType = typeTag.typeExpression.type; + if (jsDocFunctionType.parameters.length > 0 && jsDocFunctionType.parameters[0].type.kind === SyntaxKind.JSDocThisType) { + return getTypeFromTypeNode(jsDocFunctionType.parameters[0].type); + } + } + } + function isInConstructorArgumentInitializer(node: Node, constructorDecl: Node): boolean { for (let n = node; n && n !== constructorDecl; n = n.parent) { if (n.kind === SyntaxKind.Parameter) { @@ -7227,7 +7502,6 @@ namespace ts { if (isContextSensitive(func)) { const contextualSignature = getContextualSignature(func); if (contextualSignature) { - const funcHasRestParameters = hasRestParameter(func); const len = func.parameters.length - (funcHasRestParameters ? 1 : 0); const indexOfParameter = indexOf(func.parameters, parameter); @@ -8350,10 +8624,7 @@ namespace ts { } function getJsxGlobalElementClassType(): Type { - if (!jsxElementClassType) { - jsxElementClassType = getExportedTypeFromNamespace(JsxNames.JSX, JsxNames.ElementClass); - } - return jsxElementClassType; + return getExportedTypeFromNamespace(JsxNames.JSX, JsxNames.ElementClass); } /// Returns all the properties of the Jsx.IntrinsicElements interface @@ -9155,32 +9426,33 @@ namespace ts { */ function getEffectiveDecoratorFirstArgumentType(node: Node): Type { // The first argument to a decorator is its `target`. - if (node.kind === SyntaxKind.ClassDeclaration) { - // For a class decorator, the `target` is the type of the class (e.g. the - // "static" or "constructor" side of the class) - const classSymbol = getSymbolOfNode(node); - return getTypeOfSymbol(classSymbol); - } - - if (node.kind === SyntaxKind.Parameter) { - // For a parameter decorator, the `target` is the parent type of the - // parameter's containing method. - node = node.parent; - if (node.kind === SyntaxKind.Constructor) { + switch (node.kind) { + case SyntaxKind.ClassDeclaration: + case SyntaxKind.ClassExpression: + // For a class decorator, the `target` is the type of the class (e.g. the + // "static" or "constructor" side of the class) const classSymbol = getSymbolOfNode(node); return getTypeOfSymbol(classSymbol); - } - } - if (node.kind === SyntaxKind.PropertyDeclaration || - node.kind === SyntaxKind.MethodDeclaration || - node.kind === SyntaxKind.GetAccessor || - node.kind === SyntaxKind.SetAccessor) { - // For a property or method decorator, the `target` is the - // "static"-side type of the parent of the member if the member is - // declared "static"; otherwise, it is the "instance"-side type of the - // parent of the member. - return getParentTypeOfClassElement(node); + case SyntaxKind.Parameter: + // For a parameter decorator, the `target` is the parent type of the + // parameter's containing method. + node = node.parent; + if (node.kind === SyntaxKind.Constructor) { + const classSymbol = getSymbolOfNode(node); + return getTypeOfSymbol(classSymbol); + } + + // fall-through + case SyntaxKind.PropertyDeclaration: + case SyntaxKind.MethodDeclaration: + case SyntaxKind.GetAccessor: + case SyntaxKind.SetAccessor: + // For a property or method decorator, the `target` is the + // "static"-side type of the parent of the member if the member is + // declared "static"; otherwise, it is the "instance"-side type of the + // parent of the member. + return getParentTypeOfClassElement(node); } Debug.fail("Unsupported decorator target."); @@ -9849,7 +10121,8 @@ namespace ts { if (declaration && declaration.kind !== SyntaxKind.Constructor && declaration.kind !== SyntaxKind.ConstructSignature && - declaration.kind !== SyntaxKind.ConstructorType) { + declaration.kind !== SyntaxKind.ConstructorType && + !isJSDocConstructSignature(declaration)) { // When resolved signature is a call signature (and not a construct signature) the result type is any, unless // the declaring function had members created through 'x.prototype.y = expr' or 'this.y = expr' psuedodeclarations @@ -9969,6 +10242,13 @@ namespace ts { } } + function getReturnTypeFromJSDocComment(func: SignatureDeclaration | FunctionDeclaration): Type { + const returnTag = getJSDocReturnTag(func); + if (returnTag) { + return getTypeFromTypeNode(returnTag.typeExpression.type); + } + } + function createPromiseType(promisedType: Type): Type { // creates a `Promise` type where `T` is the promisedType argument const globalPromiseType = getGlobalPromiseType(); @@ -9982,11 +10262,11 @@ namespace ts { } function getReturnTypeFromBody(func: FunctionLikeDeclaration, contextualMapper?: TypeMapper): Type { - const contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); if (!func.body) { return unknownType; } + const contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); const isAsync = isAsyncFunctionLike(func); let type: Type; if (func.body.kind !== SyntaxKind.Block) { diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 7f5d052a7e7..3dfe0985575 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -611,44 +611,24 @@ namespace ts { fixupParentReferences(sourceFile); } - // If this is a javascript file, proactively see if we can get JSDoc comments for - // relevant nodes in the file. We'll use these to provide typing informaion if they're - // available. - if (isSourceFileJavaScript(sourceFile)) { - addJSDocComments(); - } - return sourceFile; } - function addJSDocComments() { - forEachChild(sourceFile, visit); - return; - function visit(node: Node) { - // Add additional cases as necessary depending on how we see JSDoc comments used - // in the wild. - switch (node.kind) { - case SyntaxKind.VariableStatement: - case SyntaxKind.FunctionDeclaration: - case SyntaxKind.Parameter: - addJSDocComment(node); - } - - forEachChild(node, visit); - } - } - - function addJSDocComment(node: Node) { - const comments = getLeadingCommentRangesOfNode(node, sourceFile); - if (comments) { - for (const comment of comments) { - const jsDocComment = JSDocParser.parseJSDocComment(node, comment.pos, comment.end - comment.pos); - if (jsDocComment) { - node.jsDocComment = jsDocComment; + function addJSDocComment(node: T): T { + if (contextFlags & ParserContextFlags.JavaScriptFile) { + const comments = getLeadingCommentRangesOfNode(node, sourceFile); + if (comments) { + for (const comment of comments) { + const jsDocComment = JSDocParser.parseJSDocComment(node, comment.pos, comment.end - comment.pos); + if (jsDocComment) { + node.jsDocComment = jsDocComment; + } } } } + + return node; } export function fixupParentReferences(sourceFile: Node) { @@ -2068,7 +2048,8 @@ namespace ts { // contexts. In addition, parameter initializers are semantically disallowed in // overload signatures. So parameter initializers are transitively disallowed in // ambient contexts. - return finishNode(node); + + return addJSDocComment(finishNode(node)); } function parseBindingElementInitializer(inParameter: boolean) { @@ -4724,7 +4705,7 @@ namespace ts { setModifiers(node, modifiers); node.declarationList = parseVariableDeclarationList(/*inForStatementInitializer*/ false); parseSemicolon(); - return finishNode(node); + return addJSDocComment(finishNode(node)); } function parseFunctionDeclaration(fullStart: number, decorators: NodeArray, modifiers: ModifiersArray): FunctionDeclaration { @@ -4738,7 +4719,7 @@ namespace ts { const isAsync = !!(node.flags & NodeFlags.Async); fillSignature(SyntaxKind.ColonToken, /*yieldContext*/ isGenerator, /*awaitContext*/ isAsync, /*requireCompleteParameterList*/ false, node); node.body = parseFunctionBlockOrSemicolon(isGenerator, isAsync, Diagnostics.or_expected); - return finishNode(node); + return addJSDocComment(finishNode(node)); } function parseConstructorDeclaration(pos: number, decorators: NodeArray, modifiers: ModifiersArray): ConstructorDeclaration { @@ -5564,23 +5545,19 @@ namespace ts { export function parseJSDocTypeExpressionForTests(content: string, start: number, length: number) { initializeState("file.js", content, ScriptTarget.Latest, /*isJavaScriptFile*/ true, /*_syntaxCursor:*/ undefined); - const jsDocTypeExpression = parseJSDocTypeExpression(start, length); + scanner.setText(content, start, length); + token = scanner.scan(); + const jsDocTypeExpression = parseJSDocTypeExpression(); const diagnostics = parseDiagnostics; clearState(); return jsDocTypeExpression ? { jsDocTypeExpression, diagnostics } : undefined; } - // Parses out a JSDoc type expression. The starting position should be right at the open - // curly in the type expression. Returns 'undefined' if it encounters any errors while parsing. + // Parses out a JSDoc type expression. /* @internal */ - export function parseJSDocTypeExpression(start: number, length: number): JSDocTypeExpression { - scanner.setText(sourceText, start, length); - - // Prime the first token for us to start processing. - token = nextToken(); - - const result = createNode(SyntaxKind.JSDocTypeExpression); + export function parseJSDocTypeExpression(): JSDocTypeExpression { + const result = createNode(SyntaxKind.JSDocTypeExpression, scanner.getTokenPos()); parseExpected(SyntaxKind.OpenBraceToken); result.type = parseJSDocTopLevelType(); @@ -5878,7 +5855,8 @@ namespace ts { export function parseIsolatedJSDocComment(content: string, start: number, length: number) { initializeState("file.js", content, ScriptTarget.Latest, /*isJavaScriptFile*/ true, /*_syntaxCursor:*/ undefined); - const jsDocComment = parseJSDocComment(/*parent:*/ undefined, start, length); + sourceFile = { languageVariant: LanguageVariant.Standard, text: content }; + const jsDocComment = parseJSDocCommentWorker(start, length); const diagnostics = parseDiagnostics; clearState(); @@ -5886,12 +5864,19 @@ namespace ts { } export function parseJSDocComment(parent: Node, start: number, length: number): JSDocComment { + const saveToken = token; + const saveParseDiagnosticsLength = parseDiagnostics.length; + const saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode; + const comment = parseJSDocCommentWorker(start, length); if (comment) { - fixupParentReferences(comment); comment.parent = parent; } + token = saveToken; + parseDiagnostics.length = saveParseDiagnosticsLength; + parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode; + return comment; } @@ -5906,69 +5891,69 @@ namespace ts { Debug.assert(end <= content.length); let tags: NodeArray; - let pos: number; - // NOTE(cyrusn): This is essentially a handwritten scanner for JSDocComments. I - // considered using an actual Scanner, but this would complicate things. The - // scanner would need to know it was in a Doc Comment. Otherwise, it would then - // produce comments *inside* the doc comment. In the end it was just easier to - // write a simple scanner rather than go that route. - if (length >= "/** */".length) { - if (content.charCodeAt(start) === CharacterCodes.slash && - content.charCodeAt(start + 1) === CharacterCodes.asterisk && - content.charCodeAt(start + 2) === CharacterCodes.asterisk && - content.charCodeAt(start + 3) !== CharacterCodes.asterisk) { + let result: JSDocComment; + // Check for /** (JSDoc opening part) + if (content.charCodeAt(start) === CharacterCodes.slash && + content.charCodeAt(start + 1) === CharacterCodes.asterisk && + content.charCodeAt(start + 2) === CharacterCodes.asterisk && + content.charCodeAt(start + 3) !== CharacterCodes.asterisk) { + + + // + 3 for leading /**, - 5 in total for /** */ + scanner.scanRange(start + 3, length - 5, () => { // Initially we can parse out a tag. We also have seen a starting asterisk. // This is so that /** * @type */ doesn't parse. let canParseTag = true; let seenAsterisk = true; - for (pos = start + "/**".length; pos < end; ) { - const ch = content.charCodeAt(pos); - pos++; + nextJSDocToken(); + while (token !== SyntaxKind.EndOfFileToken) { + switch (token) { + case SyntaxKind.AtToken: + if (canParseTag) { + parseTag(); + } + // This will take us to the end of the line, so it's OK to parse a tag on the next pass through the loop + seenAsterisk = false; + break; - if (ch === CharacterCodes.at && canParseTag) { - parseTag(); + case SyntaxKind.NewLineTrivia: + // After a line break, we can parse a tag, and we haven't seen an asterisk on the next line yet + canParseTag = true; + seenAsterisk = false; + break; - // Once we parse out a tag, we cannot keep parsing out tags on this line. - canParseTag = false; - continue; - } + case SyntaxKind.AsteriskToken: + if (seenAsterisk) { + // If we've already seen an asterisk, then we can no longer parse a tag on this line + canParseTag = false; + } + // Ignore the first asterisk on a line + seenAsterisk = true; + break; - if (isLineBreak(ch)) { - // After a line break, we can parse a tag, and we haven't seen as asterisk - // on the next line yet. - canParseTag = true; - seenAsterisk = false; - continue; - } - - if (isWhiteSpace(ch)) { - // Whitespace doesn't affect any of our parsing. - continue; - } - - // Ignore the first asterisk on a line. - if (ch === CharacterCodes.asterisk) { - if (seenAsterisk) { - // If we've already seen an asterisk, then we can no longer parse a tag - // on this line. + case SyntaxKind.Identifier: + // Anything else is doc comment text. We can't do anything with it. Because it + // wasn't a tag, we can no longer parse a tag on this line until we hit the next + // line break. canParseTag = false; - } - seenAsterisk = true; - continue; + break; + + case SyntaxKind.EndOfFileToken: + break; } - // Anything else is doc comment text. We can't do anything with it. Because it - // wasn't a tag, we can no longer parse a tag on this line until we hit the next - // line break. - canParseTag = false; + nextJSDocToken(); } - } + + result = createJSDocComment(); + + }); } - return createJSDocComment(); + return result; function createJSDocComment(): JSDocComment { if (!tags) { @@ -5981,21 +5966,23 @@ namespace ts { } function skipWhitespace(): void { - while (pos < end && isWhiteSpace(content.charCodeAt(pos))) { - pos++; + while (token === SyntaxKind.WhitespaceTrivia || token === SyntaxKind.NewLineTrivia) { + nextJSDocToken(); } } function parseTag(): void { - Debug.assert(content.charCodeAt(pos - 1) === CharacterCodes.at); - const atToken = createNode(SyntaxKind.AtToken, pos - 1); - atToken.end = pos; + Debug.assert(token === SyntaxKind.AtToken); + const atToken = createNode(SyntaxKind.AtToken, scanner.getTokenPos()); + atToken.end = scanner.getTextPos(); + nextJSDocToken(); - const tagName = scanIdentifier(); + const tagName = scanJsDocIdentifier(); if (!tagName) { return; } + nextJSDocToken(); const tag = handleTag(atToken, tagName) || handleUnknownTag(atToken, tagName); addTag(tag); } @@ -6022,7 +6009,7 @@ namespace ts { const result = createNode(SyntaxKind.JSDocTag, atToken.pos); result.atToken = atToken; result.tagName = tagName; - return finishNode(result, pos); + return finishNode(result); } function addTag(tag: JSDocTag): void { @@ -6038,14 +6025,11 @@ namespace ts { } function tryParseTypeExpression(): JSDocTypeExpression { - skipWhitespace(); - - if (content.charCodeAt(pos) !== CharacterCodes.openBrace) { + if (token !== SyntaxKind.OpenBraceToken) { return undefined; } - const typeExpression = parseJSDocTypeExpression(pos, end - pos); - pos = typeExpression.end; + const typeExpression = parseJSDocTypeExpression(); return typeExpression; } @@ -6055,18 +6039,27 @@ namespace ts { skipWhitespace(); let name: Identifier; let isBracketed: boolean; - if (content.charCodeAt(pos) === CharacterCodes.openBracket) { - pos++; - skipWhitespace(); - name = scanIdentifier(); + // Looking for something like '[foo]' or 'foo' + if (parseOptionalToken(SyntaxKind.OpenBracketToken)) { + name = scanJsDocIdentifier(); + nextJSDocToken(); isBracketed = true; + + // May have an optional default, e.g. '[foo = 42]' + if (parseOptionalToken(SyntaxKind.EqualsToken)) { + parseExpression(); + } + + parseExpected(SyntaxKind.CloseBracketToken); } - else { - name = scanIdentifier(); + else if (token === SyntaxKind.Identifier) { + name = scanJsDocIdentifier(); + nextJSDocToken(); } if (!name) { - parseErrorAtPosition(pos, 0, Diagnostics.Identifier_expected); + parseErrorAtPosition(scanner.getStartPos(), 0, Diagnostics.Identifier_expected); + return undefined; } let preName: Identifier, postName: Identifier; @@ -6088,95 +6081,88 @@ namespace ts { result.typeExpression = typeExpression; result.postParameterName = postName; result.isBracketed = isBracketed; - return finishNode(result, pos); + return finishNode(result); } function handleReturnTag(atToken: Node, tagName: Identifier): JSDocReturnTag { if (forEach(tags, t => t.kind === SyntaxKind.JSDocReturnTag)) { - parseErrorAtPosition(tagName.pos, pos - tagName.pos, Diagnostics._0_tag_already_specified, tagName.text); + parseErrorAtPosition(tagName.pos, scanner.getTokenPos() - tagName.pos, Diagnostics._0_tag_already_specified, tagName.text); } const result = createNode(SyntaxKind.JSDocReturnTag, atToken.pos); result.atToken = atToken; result.tagName = tagName; result.typeExpression = tryParseTypeExpression(); - return finishNode(result, pos); + return finishNode(result); } function handleTypeTag(atToken: Node, tagName: Identifier): JSDocTypeTag { if (forEach(tags, t => t.kind === SyntaxKind.JSDocTypeTag)) { - parseErrorAtPosition(tagName.pos, pos - tagName.pos, Diagnostics._0_tag_already_specified, tagName.text); + parseErrorAtPosition(tagName.pos, scanner.getTokenPos() - tagName.pos, Diagnostics._0_tag_already_specified, tagName.text); } const result = createNode(SyntaxKind.JSDocTypeTag, atToken.pos); result.atToken = atToken; result.tagName = tagName; result.typeExpression = tryParseTypeExpression(); - return finishNode(result, pos); + return finishNode(result); } function handleTemplateTag(atToken: Node, tagName: Identifier): JSDocTemplateTag { if (forEach(tags, t => t.kind === SyntaxKind.JSDocTemplateTag)) { - parseErrorAtPosition(tagName.pos, pos - tagName.pos, Diagnostics._0_tag_already_specified, tagName.text); + parseErrorAtPosition(tagName.pos, scanner.getTokenPos() - tagName.pos, Diagnostics._0_tag_already_specified, tagName.text); } + // Type parameter list looks like '@template T,U,V' const typeParameters = >[]; - typeParameters.pos = pos; + typeParameters.pos = scanner.getStartPos(); while (true) { - skipWhitespace(); - - const startPos = pos; - const name = scanIdentifier(); + const name = scanJsDocIdentifier(); if (!name) { - parseErrorAtPosition(startPos, 0, Diagnostics.Identifier_expected); + parseErrorAtPosition(scanner.getStartPos(), 0, Diagnostics.Identifier_expected); return undefined; } const typeParameter = createNode(SyntaxKind.TypeParameter, name.pos); typeParameter.name = name; - finishNode(typeParameter, pos); + nextJSDocToken(); + finishNode(typeParameter); typeParameters.push(typeParameter); - skipWhitespace(); - if (content.charCodeAt(pos) !== CharacterCodes.comma) { + if (token === SyntaxKind.CommaToken) { + nextJSDocToken(); + } + else { break; } - - pos++; } - typeParameters.end = pos; - const result = createNode(SyntaxKind.JSDocTemplateTag, atToken.pos); result.atToken = atToken; result.tagName = tagName; result.typeParameters = typeParameters; - return finishNode(result, pos); + finishNode(result); + typeParameters.end = result.end; + return result; } - function scanIdentifier(): Identifier { - const startPos = pos; - for (; pos < end; pos++) { - const ch = content.charCodeAt(pos); - if (pos === startPos && isIdentifierStart(ch, ScriptTarget.Latest)) { - continue; - } - else if (pos > startPos && isIdentifierPart(ch, ScriptTarget.Latest)) { - continue; - } + function nextJSDocToken(): SyntaxKind { + return token = scanner.scanJSDocToken(); + } - break; - } - - if (startPos === pos) { + function scanJsDocIdentifier(): Identifier { + if (token !== SyntaxKind.Identifier) { + parseErrorAtCurrentToken(Diagnostics.Identifier_expected); return undefined; } - const result = createNode(SyntaxKind.Identifier, startPos); - result.text = content.substring(startPos, pos); - return finishNode(result, pos); + const pos = scanner.getTokenPos(); + const end = scanner.getTextPos(); + const result = createNode(SyntaxKind.Identifier, pos); + result.text = content.substring(pos, end); + return finishNode(result, end); } } } diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 6c0489ff1dc..147bfe049ea 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -29,6 +29,7 @@ namespace ts { scanJsxIdentifier(): SyntaxKind; reScanJsxToken(): SyntaxKind; scanJsxToken(): SyntaxKind; + scanJSDocToken(): SyntaxKind; scan(): SyntaxKind; // Sets the text for the scanner to scan. An optional subrange starting point and length // can be provided to have the scanner only scan a portion of the text. @@ -42,6 +43,10 @@ namespace ts { // is returned from this function. lookAhead(callback: () => T): T; + // Invokes the callback with the scanner set to scan the specified range. When the callback + // returns, the scanner is restored to the state it was in before scanRange was called. + scanRange(start: number, length: number, callback: () => T): T; + // Invokes the provided callback. If the callback returns something falsy, then it restores // the scanner to the state it was in immediately prior to invoking the callback. If the // callback returns something truthy, then the scanner state is not rolled back. The result @@ -734,6 +739,7 @@ namespace ts { scanJsxIdentifier, reScanJsxToken, scanJsxToken, + scanJSDocToken, scan, setText, setScriptTarget, @@ -742,6 +748,7 @@ namespace ts { setTextPos, tryScan, lookAhead, + scanRange, }; function error(message: DiagnosticMessage, length?: number): void { @@ -1649,6 +1656,69 @@ namespace ts { return token; } + function scanJSDocToken(): SyntaxKind { + startPos = pos; + + // Eat leading whitespace + while (pos < end) { + const ch = text.charCodeAt(pos); + if (isWhiteSpace(ch)) { + pos++; + } + else { + break; + } + } + tokenPos = pos; + + let identifierStarted = false; + while (pos < end) { + const ch = text.charCodeAt(pos); + if (identifierStarted) { + if (!isIdentifierPart(ch, ScriptTarget.Latest)) { + return token = SyntaxKind.Identifier; + } + } + else { + if (ch === CharacterCodes.at) { + return pos += 1, token = SyntaxKind.AtToken; + } + else if (isLineBreak(ch)) { + return pos += 1, token = SyntaxKind.NewLineTrivia; + } + else if (ch === CharacterCodes.asterisk) { + return pos += 1, token = SyntaxKind.AsteriskToken; + } + else if (ch === CharacterCodes.openBrace) { + return pos += 1, token = SyntaxKind.OpenBraceToken; + } + else if (ch === CharacterCodes.closeBrace) { + return pos += 1, token = SyntaxKind.CloseBraceToken; + } + else if (ch === CharacterCodes.openBracket) { + return pos += 1, token = SyntaxKind.OpenBracketToken; + } + else if (ch === CharacterCodes.closeBracket) { + return pos += 1, token = SyntaxKind.CloseBracketToken; + } + else if (ch === CharacterCodes.equals) { + return pos += 1, token = SyntaxKind.EqualsToken; + } + else if (ch === CharacterCodes.comma) { + return pos += 1, token = SyntaxKind.CommaToken; + } + else if (isWhiteSpace(ch)) { + // Keep going + } + else { + identifierStarted = true; + } + } + pos += 1; + } + return token = SyntaxKind.EndOfFileToken; + } + function speculationHelper(callback: () => T, isLookahead: boolean): T { const savePos = pos; const saveStartPos = startPos; @@ -1671,6 +1741,33 @@ namespace ts { return result; } + function scanRange(start: number, length: number, callback: () => T): T { + const saveEnd = end; + const savePos = pos; + const saveStartPos = startPos; + const saveTokenPos = tokenPos; + const saveToken = token; + const savePrecedingLineBreak = precedingLineBreak; + const saveTokenValue = tokenValue; + const saveHasExtendedUnicodeEscape = hasExtendedUnicodeEscape; + const saveTokenIsUnterminated = tokenIsUnterminated; + + setText(text, start, length); + const result = callback(); + + end = saveEnd; + pos = savePos; + startPos = saveStartPos; + tokenPos = saveTokenPos; + token = saveToken; + precedingLineBreak = savePrecedingLineBreak; + tokenValue = saveTokenValue; + hasExtendedUnicodeEscape = saveHasExtendedUnicodeEscape; + tokenIsUnterminated = saveTokenIsUnterminated; + + return result; + } + function lookAhead(callback: () => T): T { return speculationHelper(callback, /*isLookahead*/ true); } diff --git a/src/compiler/sys.ts b/src/compiler/sys.ts index c99c28bc0dd..83b6496bb39 100644 --- a/src/compiler/sys.ts +++ b/src/compiler/sys.ts @@ -499,8 +499,6 @@ namespace ts { return getWScriptSystem(); } else if (typeof process !== "undefined" && process.nextTick && !process.browser && typeof require !== "undefined") { - // process and process.nextTick checks if current environment is node-like - // process.browser check excludes webpack and browserify return getNodeSystem(); } else if (typeof ChakraHost !== "undefined") { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 24f70373a8a..a5a30f1c092 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -311,11 +311,11 @@ namespace ts { // Top-level nodes SourceFile, - // JSDoc nodes. + // JSDoc nodes JSDocTypeExpression, - // The * type. + // The * type JSDocAllType, - // The ? type. + // The ? type JSDocUnknownType, JSDocArrayType, JSDocUnionType, @@ -996,7 +996,7 @@ namespace ts { } // @kind(SyntaxKind.CallExpression) - export interface CallExpression extends LeftHandSideExpression { + export interface CallExpression extends LeftHandSideExpression, Declaration { expression: LeftHandSideExpression; typeArguments?: NodeArray; arguments: NodeArray; diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 7bc708c7178..4e92c7e529d 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -1054,7 +1054,7 @@ namespace ts { /** * Returns true if the node is a CallExpression to the identifier 'require' with - * exactly one string literal argument. + * exactly one argument. * This function does not test if the node is in a JavaScript file or not. */ export function isRequireCall(expression: Node): expression is CallExpression { @@ -1062,8 +1062,7 @@ namespace ts { return expression.kind === SyntaxKind.CallExpression && (expression).expression.kind === SyntaxKind.Identifier && ((expression).expression).text === "require" && - (expression).arguments.length === 1 && - (expression).arguments[0].kind === SyntaxKind.StringLiteral; + (expression).arguments.length === 1; } /// Given a BinaryExpression, returns SpecialPropertyAssignmentKind for the various kinds of property @@ -1140,26 +1139,56 @@ namespace ts { (node).parameters[0].type.kind === SyntaxKind.JSDocConstructorType; } - function getJSDocTag(node: Node, kind: SyntaxKind): JSDocTag { - if (node && node.jsDocComment) { - for (const tag of node.jsDocComment.tags) { - if (tag.kind === kind) { - return tag; - } + function getJSDocTag(node: Node, kind: SyntaxKind, checkParentVariableStatement: boolean): JSDocTag { + if (!node) { + return undefined; + } + + const jsDocComment = getJSDocComment(node, checkParentVariableStatement); + if (!jsDocComment) { + return undefined; + } + + for (const tag of jsDocComment.tags) { + if (tag.kind === kind) { + return tag; } } } + function getJSDocComment(node: Node, checkParentVariableStatement: boolean): JSDocComment { + if (node.jsDocComment) { + return node.jsDocComment; + } + // Try to recognize this pattern when node is initializer of variable declaration and JSDoc comments are on containing variable statement. + // /** + // * @param {number} name + // * @returns {number} + // */ + // var x = function(name) { return name.length; } + if (checkParentVariableStatement) { + const isInitializerOfVariableDeclarationInStatement = + node.parent.kind === SyntaxKind.VariableDeclaration && + (node.parent).initializer === node && + node.parent.parent.parent.kind === SyntaxKind.VariableStatement; + + const variableStatementNode = isInitializerOfVariableDeclarationInStatement ? node.parent.parent.parent : undefined; + return variableStatementNode && variableStatementNode.jsDocComment; + } + + return undefined; + } + export function getJSDocTypeTag(node: Node): JSDocTypeTag { - return getJSDocTag(node, SyntaxKind.JSDocTypeTag); + return getJSDocTag(node, SyntaxKind.JSDocTypeTag, /*checkParentVariableStatement*/ false); } export function getJSDocReturnTag(node: Node): JSDocReturnTag { - return getJSDocTag(node, SyntaxKind.JSDocReturnTag); + return getJSDocTag(node, SyntaxKind.JSDocReturnTag, /*checkParentVariableStatement*/ true); } export function getJSDocTemplateTag(node: Node): JSDocTemplateTag { - return getJSDocTag(node, SyntaxKind.JSDocTemplateTag); + return getJSDocTag(node, SyntaxKind.JSDocTemplateTag, /*checkParentVariableStatement*/ false); } export function getCorrespondingJSDocParameterTag(parameter: ParameterDeclaration): JSDocParameterTag { @@ -1168,19 +1197,21 @@ namespace ts { // annotation. const parameterName = (parameter.name).text; - const docComment = parameter.parent.jsDocComment; - if (docComment) { - return forEach(docComment.tags, t => { - if (t.kind === SyntaxKind.JSDocParameterTag) { - const parameterTag = t; + const jsDocComment = getJSDocComment(parameter.parent, /*checkParentVariableStatement*/ true); + if (jsDocComment) { + for (const tag of jsDocComment.tags) { + if (tag.kind === SyntaxKind.JSDocParameterTag) { + const parameterTag = tag; const name = parameterTag.preParameterName || parameterTag.postParameterName; if (name.text === parameterName) { - return t; + return parameterTag; } } - }); + } } } + + return undefined; } export function hasRestParameter(s: SignatureDeclaration): boolean { diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index 8cd1bca876e..3018f08abe5 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -571,6 +571,31 @@ namespace FourSlash { } } + public verifyCompletionListStartsWithItemsInOrder(items: string[]): void { + if (items.length === 0) { + return; + } + + const entries = this.getCompletionListAtCaret().entries; + assert.isTrue(items.length <= entries.length, `Amount of expected items in completion list [ ${items.length} ] is greater than actual number of items in list [ ${entries.length} ]`); + for (let i = 0; i < items.length; i++) { + assert.equal(entries[i].name, items[i], `Unexpected item in completion list`); + } + } + + public noItemsWithSameNameButDifferentKind(): void { + const completions = this.getCompletionListAtCaret(); + const uniqueItems: ts.Map = {}; + for (const item of completions.entries) { + if (!ts.hasProperty(uniqueItems, item.name)) { + uniqueItems[item.name] = item.kind; + } + else { + assert.equal(item.kind, uniqueItems[item.name], `Items should have the same kind, got ${item.kind} and ${uniqueItems[item.name]}`); + } + } + } + public verifyMemberListIsEmpty(negative: boolean) { const members = this.getMemberListAtCaret(); if ((!members || members.entries.length === 0) && negative) { diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 7fd81973172..329834cb15d 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1593,7 +1593,7 @@ namespace Harness { return { unitName: libFile, content: io.readFile(libFile) }; } - if (Error) (Error).stackTraceLimit = 1; + if (Error) (Error).stackTraceLimit = 25; } // TODO: not sure why Utils.evalFile isn't working with this, eventually will concat it like old compiler instead of eval diff --git a/src/server/server.ts b/src/server/server.ts index d9f078ac0eb..5c2fd7d1c43 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -7,12 +7,58 @@ namespace ts.server { const readline: NodeJS.ReadLine = require("readline"); const fs: typeof NodeJS.fs = require("fs"); + // TODO: "net" module not defined in local node.d.ts + const net: any = require("net"); + const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false, }); + // Need to write directly to stdout, else rl.write also causes an input "line" event + // See https://github.com/joyent/node/issues/4243 + let writeHost = (data: string) => process.stdout.write(data); + + // Stubs for I/O + const onInput = (input: string) => { return; }; + const onClose = () => { return; }; + + // Use a socket for comms if defined + const tss_debug: string = process.env["TSS_DEBUG"]; + let tcp_port = 0; + if (tss_debug) { + tss_debug.split(" ").forEach( param => { + if (param.indexOf("port=") === 0) { + tcp_port = parseInt(param.substring(5)); + } + }); + if (tcp_port) { + net.createServer( (socket: any) => { + // Called once a connection is made + socket.setEncoding("utf8"); + // Wire up the I/O handers to the socket + writeHost = (data: string) => { + socket.write(data); + return true; + }; + socket.on("data", (data: string) => { + // May get multiple requests in one network read + if (data) { + data.trim().split(/(\r\n)|\n/).forEach(line => onInput(line)); + } + }); + socket.on("end", onClose); + + }).listen(tcp_port); + } + } + if (!tcp_port) { + // If not using tcp, wire up the I/O handler to stdin/stdout + rl.on("line", (input: string) => onInput(input)); + rl.on("close", () => onClose()); + } + class Logger implements ts.server.Logger { fd = -1; seq = 0; diff --git a/src/server/session.ts b/src/server/session.ts index 9b9bf35a4a5..c1bafdf5ba8 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -792,7 +792,9 @@ namespace ts.server { } private closeClientFile(fileName: string) { - if (!fileName) { return; } + if (!fileName) { + return; + } const file = ts.normalizePath(fileName); this.projectService.closeClientFile(file); } diff --git a/src/services/services.ts b/src/services/services.ts index 0fd4df19907..c199c39d808 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2185,7 +2185,6 @@ namespace ts { } return true; } - return false; } @@ -2368,6 +2367,7 @@ namespace ts { // skip open bracket token = scanner.scan(); + let i = 0; // scan until ']' or EOF while (token !== SyntaxKind.CloseBracketToken && token !== SyntaxKind.EndOfFileToken) { diff --git a/tests/baselines/reference/jsFileCompilationSyntaxError.errors.txt b/tests/baselines/reference/jsFileCompilationSyntaxError.errors.txt index 6e55ff30f04..d98a1e7e7bb 100644 --- a/tests/baselines/reference/jsFileCompilationSyntaxError.errors.txt +++ b/tests/baselines/reference/jsFileCompilationSyntaxError.errors.txt @@ -1,14 +1,11 @@ error TS5055: Cannot write file 'tests/cases/compiler/a.js' because it would overwrite input file. -tests/cases/compiler/a.js(3,6): error TS1223: 'type' tag already specified. !!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' because it would overwrite input file. -==== tests/cases/compiler/a.js (1 errors) ==== +==== tests/cases/compiler/a.js (0 errors) ==== /** * @type {number} * @type {string} - ~~~~ -!!! error TS1223: 'type' tag already specified. */ var v; \ No newline at end of file diff --git a/tests/cases/fourslash/completionInJsDoc.ts b/tests/cases/fourslash/completionInJsDoc.ts index 80516303856..e5cc7a3d2b6 100644 --- a/tests/cases/fourslash/completionInJsDoc.ts +++ b/tests/cases/fourslash/completionInJsDoc.ts @@ -23,11 +23,8 @@ ////// @pa/*7*/ ////var v7; //// -/////** @param { n/*8*/ } */ +/////** @return { n/*8*/ } */ ////var v8; -//// -/////** @return { n/*9*/ } */ -////var v9; goTo.marker('1'); verify.completionListContains("constructor"); @@ -57,6 +54,3 @@ verify.completionListIsEmpty(); goTo.marker('8'); verify.completionListContains('number'); -goTo.marker('9'); -verify.completionListContains('number'); - diff --git a/tests/cases/fourslash/getJavaScriptCompletions1.ts b/tests/cases/fourslash/getJavaScriptCompletions1.ts new file mode 100644 index 00000000000..6d8f36aac1b --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions1.ts @@ -0,0 +1,10 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @type {number} */ +////var v; +////v./**/ + +goTo.marker(); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); diff --git a/tests/cases/fourslash/getJavaScriptCompletions10.ts b/tests/cases/fourslash/getJavaScriptCompletions10.ts new file mode 100644 index 00000000000..5fbd91e8988 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions10.ts @@ -0,0 +1,11 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** +//// * @type {function(this:number)} +//// */ +////function f() { this./**/ } + +goTo.marker(); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions11.ts b/tests/cases/fourslash/getJavaScriptCompletions11.ts new file mode 100644 index 00000000000..f12f53fa960 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions11.ts @@ -0,0 +1,11 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @type {number|string} */ +////var v; +////v./**/ + +goTo.marker(); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); +verify.completionListContains("charCodeAt", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions12.ts b/tests/cases/fourslash/getJavaScriptCompletions12.ts new file mode 100644 index 00000000000..99b14828854 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions12.ts @@ -0,0 +1,36 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** +//// * @param {number} input +//// * @param {string} currency +//// * @returns {number} +//// */ +////var convert = function(input, currency) { +//// switch(currency./*1*/) { +//// case "USD": +//// input./*2*/; +//// case "EUR": +//// return "" + rateToUsd.EUR; +//// case "CNY": +//// return {} + rateToUsd.CNY; +//// } +////} +////convert(1, "")./*3*/ +/////** +//// * @param {number} x +//// */ +////var test1 = function(x) { return x./*4*/ }, test2 = function(a) { return a./*5*/ }; + + +goTo.marker("1"); +verify.completionListContains("charCodeAt", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); +goTo.marker("2"); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); +goTo.marker("3"); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); +goTo.marker("4"); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); +goTo.marker("5"); +verify.completionListContains("test1", /*displayText:*/ undefined, /*documentation*/ undefined, "warning"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions13.ts b/tests/cases/fourslash/getJavaScriptCompletions13.ts new file mode 100644 index 00000000000..438c73e304c --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions13.ts @@ -0,0 +1,26 @@ +/// +// @allowNonTsExtensions: true + +// @Filename: file1.js + +////var file1Identifier = 1; +////interface Foo { FooProp: number }; + +// @Filename: file2.js + +////var file2Identifier1 = 2; +////var file2Identifier2 = 2; +/////*1*/ +////file2Identifier2./*2*/ + +goTo.marker("1"); +verify.completionListContains("file2Identifier1"); +verify.completionListContains("file2Identifier2"); +verify.completionListContains("file1Identifier"); +verify.not.completionListContains("FooProp"); + +goTo.marker("2"); +verify.completionListContains("file2Identifier1"); +verify.completionListContains("file2Identifier2"); +verify.not.completionListContains("file1Identifier") +verify.not.completionListContains("FooProp"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions14.ts b/tests/cases/fourslash/getJavaScriptCompletions14.ts new file mode 100644 index 00000000000..52a23065a5e --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions14.ts @@ -0,0 +1,13 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: file1.js +/////// +////interface Number { +//// toExponential(fractionDigits?: number): string; +////} +////var x = 1; +////x./*1*/ + +goTo.marker("1"); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); diff --git a/tests/cases/fourslash/getJavaScriptCompletions15.ts b/tests/cases/fourslash/getJavaScriptCompletions15.ts new file mode 100644 index 00000000000..fbcbc2d4692 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions15.ts @@ -0,0 +1,29 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: refFile1.ts +//// export var V = 1; + +// @Filename: refFile2.ts +//// export var V = "123" + +// @Filename: refFile3.ts +//// export var V = "123" + +// @Filename: main.js +//// import ref1 = require("refFile1"); +//// var ref2 = require("refFile2"); +//// ref1.V./*1*/; +//// ref2.V./*2*/; +//// var v = { x: require("refFile3") }; +//// v.x./*3*/; +//// v.x.V./*4*/; + +goTo.marker("1"); +verify.completionListContains("toExponential"); +goTo.marker("2"); +verify.completionListContains("toLowerCase"); +goTo.marker("3"); +verify.completionListContains("V"); +goTo.marker("4"); +verify.completionListContains("toLowerCase"); diff --git a/tests/cases/fourslash/getJavaScriptCompletions2.ts b/tests/cases/fourslash/getJavaScriptCompletions2.ts new file mode 100644 index 00000000000..0cb2de046a6 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions2.ts @@ -0,0 +1,10 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @type {(number|string)} */ +////var v; +////v./**/ + +goTo.marker(); +verify.completionListContains("valueOf", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions3.ts b/tests/cases/fourslash/getJavaScriptCompletions3.ts new file mode 100644 index 00000000000..13a6f1673e6 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions3.ts @@ -0,0 +1,10 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @type {Array.} */ +////var v; +////v./**/ + +goTo.marker(); +verify.completionListContains("concat", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions4.ts b/tests/cases/fourslash/getJavaScriptCompletions4.ts new file mode 100644 index 00000000000..3719b8e1258 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions4.ts @@ -0,0 +1,10 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @return {number} */ +////function foo(a,b) { } +////foo(1,2)./**/ + +goTo.marker(); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions5.ts b/tests/cases/fourslash/getJavaScriptCompletions5.ts new file mode 100644 index 00000000000..348feef94c3 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions5.ts @@ -0,0 +1,15 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +//// /** +//// * @template T +//// * @param {T} a +//// * @return {T} */ +//// function foo(a) { } +//// let x = /*1*/foo; +//// foo(1)./**/ + +goTo.marker('1'); +goTo.marker(); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); diff --git a/tests/cases/fourslash/getJavaScriptCompletions6.ts b/tests/cases/fourslash/getJavaScriptCompletions6.ts new file mode 100644 index 00000000000..9f9a42b5762 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions6.ts @@ -0,0 +1,13 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** +//// * @param {...number} a +//// */ +////function foo(a) { +//// a./**/ +////} + +goTo.marker(); +verify.completionListContains("concat", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions7.ts b/tests/cases/fourslash/getJavaScriptCompletions7.ts new file mode 100644 index 00000000000..d8b01cfb757 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions7.ts @@ -0,0 +1,13 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** +//// * @param {...number} a +//// */ +////function foo(a) { +//// a[0]./**/ +////} + +goTo.marker(); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions8.ts b/tests/cases/fourslash/getJavaScriptCompletions8.ts new file mode 100644 index 00000000000..418aae676be --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions8.ts @@ -0,0 +1,12 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** +//// * @type {function(): number} +//// */ +////var v; +////v()./**/ + +goTo.marker(); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptCompletions9.ts b/tests/cases/fourslash/getJavaScriptCompletions9.ts new file mode 100644 index 00000000000..1619a2ca9fc --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptCompletions9.ts @@ -0,0 +1,12 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** +//// * @type {function(new:number)} +//// */ +////var v; +////new v()./**/ + +goTo.marker(); +verify.completionListContains("toExponential", /*displayText:*/ undefined, /*documentation*/ undefined, "method"); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptQuickInfo1.ts b/tests/cases/fourslash/getJavaScriptQuickInfo1.ts new file mode 100644 index 00000000000..71072f1699a --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptQuickInfo1.ts @@ -0,0 +1,9 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @type {function(new:string,number)} */ +////var /**/v; + +goTo.marker(); +verify.quickInfoIs('var v: new (p1: number) => string'); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptQuickInfo2.ts b/tests/cases/fourslash/getJavaScriptQuickInfo2.ts new file mode 100644 index 00000000000..ce347a62b27 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptQuickInfo2.ts @@ -0,0 +1,9 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @param {number} [a] */ +////function /**/f(a) { } + +goTo.marker(); +verify.quickInfoIs('function f(a?: number): void'); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptQuickInfo3.ts b/tests/cases/fourslash/getJavaScriptQuickInfo3.ts new file mode 100644 index 00000000000..2e094bd21f6 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptQuickInfo3.ts @@ -0,0 +1,9 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @param {number[]} [a] */ +////function /**/f(a) { } + +goTo.marker(); +verify.quickInfoIs('function f(a?: number[]): void'); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptQuickInfo4.ts b/tests/cases/fourslash/getJavaScriptQuickInfo4.ts new file mode 100644 index 00000000000..34ee10d97b7 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptQuickInfo4.ts @@ -0,0 +1,9 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @param {[number,string]} [a] */ +////function /**/f(a) { } + +goTo.marker(); +verify.quickInfoIs('function f(a?: [number, string]): void'); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptQuickInfo5.ts b/tests/cases/fourslash/getJavaScriptQuickInfo5.ts new file mode 100644 index 00000000000..004af0811b7 --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptQuickInfo5.ts @@ -0,0 +1,9 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @param {{b:number}} [a] */ +////function /**/f(a) { } + +goTo.marker(); +verify.quickInfoIs('function f(a?: {\n b: number;\n}): void'); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptQuickInfo6.ts b/tests/cases/fourslash/getJavaScriptQuickInfo6.ts new file mode 100644 index 00000000000..3aebd19deda --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptQuickInfo6.ts @@ -0,0 +1,9 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +/////** @type {function(this:number)} */ +////function f() { /**/this } + +goTo.marker(); +verify.quickInfoIs('number'); \ No newline at end of file diff --git a/tests/cases/fourslash/getJavaScriptQuickInfo7.ts b/tests/cases/fourslash/getJavaScriptQuickInfo7.ts new file mode 100644 index 00000000000..282f5aeabfd --- /dev/null +++ b/tests/cases/fourslash/getJavaScriptQuickInfo7.ts @@ -0,0 +1,10 @@ +/// + +// @allowNonTsExtensions: true +// @Filename: Foo.js +//// function f(a,b) { } +//// /** @type {f} */ +//// var v/**/ + +goTo.marker(); +verify.quickInfoIs('var v: (a: any, b: any) => void'); \ No newline at end of file diff --git a/tests/cases/fourslash/javaScriptModulesError1.ts b/tests/cases/fourslash/javaScriptModulesError1.ts new file mode 100644 index 00000000000..f13b25a182e --- /dev/null +++ b/tests/cases/fourslash/javaScriptModulesError1.ts @@ -0,0 +1,12 @@ +/// + +// Error: Having more function parameters than entries in the dependency array + +// @allowNonTsExtensions: true +// @Filename: Foo.js +//// define('mod1', ['a'], /**/function(a, b) { +//// +//// }); + +// TODO: what should happen? +goTo.marker(); \ No newline at end of file diff --git a/tests/cases/unittests/jsDocParsing.ts b/tests/cases/unittests/jsDocParsing.ts index ebba6e8a1a6..9988383b467 100644 --- a/tests/cases/unittests/jsDocParsing.ts +++ b/tests/cases/unittests/jsDocParsing.ts @@ -1,4 +1,5 @@ /// +/// /// /// @@ -985,15 +986,29 @@ module ts { describe("DocComments", () => { function parsesCorrectly(content: string, expected: string) { let comment = parseIsolatedJSDocComment(content); - Debug.assert(comment && comment.diagnostics.length === 0); + if (!comment) { + Debug.fail('Comment failed to parse entirely'); + } + if (comment.diagnostics.length > 0) { + Debug.fail('Comment has at least one diagnostic: ' + comment.diagnostics[0].messageText); + } let result = JSON.stringify(comment.jsDocComment, (k, v) => { return v && v.pos !== undefined ? JSON.parse(Utils.sourceFileToJSON(v)) : v; - }, " "); + }, 4); - assert.equal(result, expected); + if (result !== expected) { + // Turn on a human-readable diff + if (typeof require !== 'undefined') { + require('chai').config.showDiff = true; + chai.expect(JSON.parse(result)).equal(JSON.parse(expected)); + } + else { + assert.equal(result, expected); + } + } } function parsesIncorrectly(content: string) { @@ -1577,7 +1592,7 @@ module ts { "0": { "kind": "JSDocParameterTag", "pos": 8, - "end": 30, + "end": 31, "atToken": { "kind": "AtToken", "pos": 8, @@ -1609,7 +1624,7 @@ module ts { }, "length": 1, "pos": 8, - "end": 30 + "end": 31 } }`); }); @@ -1627,7 +1642,7 @@ module ts { "0": { "kind": "JSDocParameterTag", "pos": 8, - "end": 31, + "end": 36, "atToken": { "kind": "AtToken", "pos": 8, @@ -1659,7 +1674,7 @@ module ts { }, "length": 1, "pos": 8, - "end": 31 + "end": 36 } }`); }); @@ -2113,7 +2128,7 @@ module ts { "0": { "kind": "JSDocTemplateTag", "pos": 8, - "end": 24, + "end": 23, "atToken": { "kind": "AtToken", "pos": 8, @@ -2150,12 +2165,12 @@ module ts { }, "length": 2, "pos": 17, - "end": 24 + "end": 23 } }, "length": 1, "pos": 8, - "end": 24 + "end": 23 } }`); }); From 68f11b44fa3e573d1d33456789b5e138103c8e38 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Wed, 6 Jan 2016 14:20:04 -0800 Subject: [PATCH 02/34] Remove unrelated changes --- src/compiler/checker.ts | 57 ++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index a8e2d2b4055..03a57bee468 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -164,6 +164,8 @@ namespace ts { let getGlobalPromiseConstructorLikeType: () => ObjectType; let getGlobalThenableType: () => ObjectType; + let jsxElementClassType: Type; + let deferredNodes: Node[]; const tupleTypes: Map = {}; @@ -7502,6 +7504,7 @@ namespace ts { if (isContextSensitive(func)) { const contextualSignature = getContextualSignature(func); if (contextualSignature) { + const funcHasRestParameters = hasRestParameter(func); const len = func.parameters.length - (funcHasRestParameters ? 1 : 0); const indexOfParameter = indexOf(func.parameters, parameter); @@ -8605,7 +8608,10 @@ namespace ts { } function getJsxGlobalElementClassType(): Type { - return getExportedTypeFromNamespace(JsxNames.JSX, JsxNames.ElementClass); + if (!jsxElementClassType) { + jsxElementClassType = getExportedTypeFromNamespace(JsxNames.JSX, JsxNames.ElementClass); + } + return jsxElementClassType; } /// Returns all the properties of the Jsx.IntrinsicElements interface @@ -9407,33 +9413,32 @@ namespace ts { */ function getEffectiveDecoratorFirstArgumentType(node: Node): Type { // The first argument to a decorator is its `target`. - switch (node.kind) { - case SyntaxKind.ClassDeclaration: - case SyntaxKind.ClassExpression: - // For a class decorator, the `target` is the type of the class (e.g. the - // "static" or "constructor" side of the class) + if (node.kind === SyntaxKind.ClassDeclaration) { + // For a class decorator, the `target` is the type of the class (e.g. the + // "static" or "constructor" side of the class) + const classSymbol = getSymbolOfNode(node); + return getTypeOfSymbol(classSymbol); + } + + if (node.kind === SyntaxKind.Parameter) { + // For a parameter decorator, the `target` is the parent type of the + // parameter's containing method. + node = node.parent; + if (node.kind === SyntaxKind.Constructor) { const classSymbol = getSymbolOfNode(node); return getTypeOfSymbol(classSymbol); + } + } - case SyntaxKind.Parameter: - // For a parameter decorator, the `target` is the parent type of the - // parameter's containing method. - node = node.parent; - if (node.kind === SyntaxKind.Constructor) { - const classSymbol = getSymbolOfNode(node); - return getTypeOfSymbol(classSymbol); - } - - // fall-through - case SyntaxKind.PropertyDeclaration: - case SyntaxKind.MethodDeclaration: - case SyntaxKind.GetAccessor: - case SyntaxKind.SetAccessor: - // For a property or method decorator, the `target` is the - // "static"-side type of the parent of the member if the member is - // declared "static"; otherwise, it is the "instance"-side type of the - // parent of the member. - return getParentTypeOfClassElement(node); + if (node.kind === SyntaxKind.PropertyDeclaration || + node.kind === SyntaxKind.MethodDeclaration || + node.kind === SyntaxKind.GetAccessor || + node.kind === SyntaxKind.SetAccessor) { + // For a property or method decorator, the `target` is the + // "static"-side type of the parent of the member if the member is + // declared "static"; otherwise, it is the "instance"-side type of the + // parent of the member. + return getParentTypeOfClassElement(node); } Debug.fail("Unsupported decorator target."); @@ -10243,11 +10248,11 @@ namespace ts { } function getReturnTypeFromBody(func: FunctionLikeDeclaration, contextualMapper?: TypeMapper): Type { + const contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); if (!func.body) { return unknownType; } - const contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); const isAsync = isAsyncFunctionLike(func); let type: Type; if (func.body.kind !== SyntaxKind.Block) { From c006634cb74f674d5ad61aaf8ad6f7111224460b Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Thu, 7 Jan 2016 16:14:53 -0800 Subject: [PATCH 03/34] JSDoc identifiers must start with an identifier start --- src/compiler/scanner.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index d03ab77569c..96c59c8b1bd 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -1725,9 +1725,12 @@ namespace ts { else if (isWhiteSpace(ch)) { // Keep going } - else { + else if (isIdentifierStart(ch, ScriptTarget.Latest)) { identifierStarted = true; } + else { + return pos += 1, token = SyntaxKind.Unknown; + } } pos += 1; } From b1711e3633d9035e3737bec930e8a33ea6325466 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Thu, 7 Jan 2016 17:33:46 -0800 Subject: [PATCH 04/34] scanJsIdentifier -> parseJSDocIdentifier --- src/compiler/parser.ts | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 78a3b567ef3..e86e05068db 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -5999,12 +5999,11 @@ namespace ts { atToken.end = scanner.getTextPos(); nextJSDocToken(); - const tagName = scanJsDocIdentifier(); + const tagName = parseJSDocIdentifier(); if (!tagName) { return; } - nextJSDocToken(); const tag = handleTag(atToken, tagName) || handleUnknownTag(atToken, tagName); addTag(tag); } @@ -6063,8 +6062,7 @@ namespace ts { let isBracketed: boolean; // Looking for something like '[foo]' or 'foo' if (parseOptionalToken(SyntaxKind.OpenBracketToken)) { - name = scanJsDocIdentifier(); - nextJSDocToken(); + name = parseJSDocIdentifier(); isBracketed = true; // May have an optional default, e.g. '[foo = 42]' @@ -6075,8 +6073,7 @@ namespace ts { parseExpected(SyntaxKind.CloseBracketToken); } else if (token === SyntaxKind.Identifier) { - name = scanJsDocIdentifier(); - nextJSDocToken(); + name = parseJSDocIdentifier(); } if (!name) { @@ -6140,7 +6137,7 @@ namespace ts { typeParameters.pos = scanner.getStartPos(); while (true) { - const name = scanJsDocIdentifier(); + const name = parseJSDocIdentifier(); if (!name) { parseErrorAtPosition(scanner.getStartPos(), 0, Diagnostics.Identifier_expected); return undefined; @@ -6148,7 +6145,6 @@ namespace ts { const typeParameter = createNode(SyntaxKind.TypeParameter, name.pos); typeParameter.name = name; - nextJSDocToken(); finishNode(typeParameter); typeParameters.push(typeParameter); @@ -6174,7 +6170,7 @@ namespace ts { return token = scanner.scanJSDocToken(); } - function scanJsDocIdentifier(): Identifier { + function parseJSDocIdentifier(): Identifier { if (token !== SyntaxKind.Identifier) { parseErrorAtCurrentToken(Diagnostics.Identifier_expected); return undefined; @@ -6184,7 +6180,10 @@ namespace ts { const end = scanner.getTextPos(); const result = createNode(SyntaxKind.Identifier, pos); result.text = content.substring(pos, end); - return finishNode(result, end); + finishNode(result, end); + + nextJSDocToken(); + return result; } } } From a3126fd6be67802c6413899095d0193abed6c97d Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 8 Jan 2016 17:49:22 -0800 Subject: [PATCH 05/34] Simplify JSDoc scanner loop --- src/compiler/scanner.ts | 86 ++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 49 deletions(-) diff --git a/src/compiler/scanner.ts b/src/compiler/scanner.ts index 96c59c8b1bd..b53b1b5c5c1 100644 --- a/src/compiler/scanner.ts +++ b/src/compiler/scanner.ts @@ -1672,11 +1672,16 @@ namespace ts { } function scanJSDocToken(): SyntaxKind { + if (pos >= end) { + return token = SyntaxKind.EndOfFileToken; + } + startPos = pos; // Eat leading whitespace + let ch = text.charCodeAt(pos); while (pos < end) { - const ch = text.charCodeAt(pos); + ch = text.charCodeAt(pos); if (isWhiteSpace(ch)) { pos++; } @@ -1686,55 +1691,38 @@ namespace ts { } tokenPos = pos; - let identifierStarted = false; - while (pos < end) { - const ch = text.charCodeAt(pos); - if (identifierStarted) { - if (!isIdentifierPart(ch, ScriptTarget.Latest)) { - return token = SyntaxKind.Identifier; - } - } - else { - if (ch === CharacterCodes.at) { - return pos += 1, token = SyntaxKind.AtToken; - } - else if (isLineBreak(ch)) { - return pos += 1, token = SyntaxKind.NewLineTrivia; - } - else if (ch === CharacterCodes.asterisk) { - return pos += 1, token = SyntaxKind.AsteriskToken; - } - else if (ch === CharacterCodes.openBrace) { - return pos += 1, token = SyntaxKind.OpenBraceToken; - } - else if (ch === CharacterCodes.closeBrace) { - return pos += 1, token = SyntaxKind.CloseBraceToken; - } - else if (ch === CharacterCodes.openBracket) { - return pos += 1, token = SyntaxKind.OpenBracketToken; - } - else if (ch === CharacterCodes.closeBracket) { - return pos += 1, token = SyntaxKind.CloseBracketToken; - } - else if (ch === CharacterCodes.equals) { - return pos += 1, token = SyntaxKind.EqualsToken; - } - else if (ch === CharacterCodes.comma) { - return pos += 1, token = SyntaxKind.CommaToken; - } - else if (isWhiteSpace(ch)) { - // Keep going - } - else if (isIdentifierStart(ch, ScriptTarget.Latest)) { - identifierStarted = true; - } - else { - return pos += 1, token = SyntaxKind.Unknown; - } - } - pos += 1; + switch (ch) { + case CharacterCodes.at: + return pos += 1, token = SyntaxKind.AtToken; + case CharacterCodes.lineFeed: + case CharacterCodes.carriageReturn: + return pos += 1, token = SyntaxKind.NewLineTrivia; + case CharacterCodes.asterisk: + return pos += 1, token = SyntaxKind.AsteriskToken; + case CharacterCodes.openBrace: + return pos += 1, token = SyntaxKind.OpenBraceToken; + case CharacterCodes.closeBrace: + return pos += 1, token = SyntaxKind.CloseBraceToken; + case CharacterCodes.openBracket: + return pos += 1, token = SyntaxKind.OpenBracketToken; + case CharacterCodes.closeBracket: + return pos += 1, token = SyntaxKind.CloseBracketToken; + case CharacterCodes.equals: + return pos += 1, token = SyntaxKind.EqualsToken; + case CharacterCodes.comma: + return pos += 1, token = SyntaxKind.CommaToken; + } + + if (isIdentifierStart(ch, ScriptTarget.Latest)) { + pos++; + while (isIdentifierPart(text.charCodeAt(pos), ScriptTarget.Latest) && pos < end) { + pos++; + } + return token = SyntaxKind.Identifier; + } + else { + return pos += 1, token = SyntaxKind.Unknown; } - return token = SyntaxKind.EndOfFileToken; } function speculationHelper(callback: () => T, isLookahead: boolean): T { From 4fe33732cf9639db3ae0fe039964f49590afd457 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Mon, 11 Jan 2016 13:35:33 -0800 Subject: [PATCH 06/34] Tidy up unused comments / code --- src/compiler/binder.ts | 6 ++---- src/compiler/checker.ts | 6 +----- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index 6b63cbdb5df..a9aed6a5221 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -888,7 +888,7 @@ namespace ts { } } - function bindFunctionOrConstructorTypeOrJSDocFunctionType(node: SignatureDeclaration): void { + function bindFunctionOrConstructorType(node: SignatureDeclaration): void { // For a given function symbol "<...>(...) => T" we want to generate a symbol identical // to the one we would get for: { <...>(...): T } // @@ -1274,7 +1274,7 @@ namespace ts { case SyntaxKind.FunctionType: case SyntaxKind.ConstructorType: case SyntaxKind.JSDocFunctionType: - return bindFunctionOrConstructorTypeOrJSDocFunctionType(node); + return bindFunctionOrConstructorType(node); case SyntaxKind.TypeLiteral: case SyntaxKind.JSDocRecordType: return bindAnonymousDeclaration(node, SymbolFlags.TypeLiteral, "__type"); @@ -1288,8 +1288,6 @@ namespace ts { case SyntaxKind.CallExpression: if (isInJavaScriptFile(node)) { - // We're only inspecting call expressions to detect CommonJS modules, so we can skip - // this check if we've already seen the module indicator bindCallExpression(node); } break; diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 6d7a9c5ffa7..229d66ec4fd 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3924,7 +3924,7 @@ namespace ts { return result; } - function isOptionalParameter(node: ParameterDeclaration, skipSignatureCheck?: boolean) { + function isOptionalParameter(node: ParameterDeclaration) { if (node.parserContextFlags & ParserContextFlags.JavaScriptFile) { if (node.type && node.type.kind === SyntaxKind.JSDocOptionalType) { return true; @@ -3947,10 +3947,6 @@ namespace ts { } if (node.initializer) { - if (skipSignatureCheck) { - return true; - } - const signatureDeclaration = node.parent; const signature = getSignatureFromDeclaration(signatureDeclaration); const parameterIndex = ts.indexOf(signatureDeclaration.parameters, node); From 120fa190d22fda462df989ce04268c67c0523305 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Tue, 12 Jan 2016 15:30:19 -0800 Subject: [PATCH 07/34] Remove duplicated functions --- src/compiler/checker.ts | 76 +++++++---------------------------------- src/compiler/types.ts | 2 ++ 2 files changed, 15 insertions(+), 63 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 229d66ec4fd..99173b816f0 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4727,23 +4727,6 @@ namespace ts { return links.resolvedType; } - function getTypeFromJSDocFunctionType(node: JSDocFunctionType): Type { - Debug.assert(!!node.symbol); - const links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = createObjectType(TypeFlags.Anonymous, node.symbol); - } - return links.resolvedType; - } - - function getTypeFromJSDocRecordType(node: JSDocRecordType): Type { - const links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = createObjectType(TypeFlags.Anonymous, node.symbol); - } - return links.resolvedType; - } - function getTypeFromJSDocVariadicType(node: JSDocVariadicType): Type { const links = getNodeLinks(node); if (!links.resolvedType) { @@ -4753,27 +4736,6 @@ namespace ts { return links.resolvedType; } - function getTypeFromJSDocTypeReference(node: JSDocTypeReference): Type { - return getTypeFromTypeReference(node); - } - - function getTypeFromJSDocArrayType(node: JSDocArrayType): Type { - const links = getNodeLinks(node); - if (!links.resolvedType) { - links.resolvedType = createArrayType(getTypeFromTypeNode(node.elementType)); - } - return links.resolvedType; - } - - function getTypeFromJSDocUnionType(node: JSDocUnionType): Type { - const links = getNodeLinks(node); - if (!links.resolvedType) { - const types = map(node.types, getTypeFromTypeNode); - links.resolvedType = getUnionType(types, /*noSubtypeReduction*/ true); - } - return links.resolvedType; - } - function getTypeFromJSDocTupleType(node: JSDocTupleType): Type { const links = getNodeLinks(node); if (!links.resolvedType) { @@ -4826,6 +4788,8 @@ namespace ts { function getTypeFromTypeNode(node: TypeNode): Type { switch (node.kind) { case SyntaxKind.AnyKeyword: + case SyntaxKind.JSDocAllType: + case SyntaxKind.JSDocUnknownType: return anyType; case SyntaxKind.StringKeyword: return stringType; @@ -4842,6 +4806,7 @@ namespace ts { case SyntaxKind.StringLiteralType: return getTypeFromStringLiteralTypeNode(node); case SyntaxKind.TypeReference: + case SyntaxKind.JSDocTypeReference: return getTypeFromTypeReference(node); case SyntaxKind.TypePredicate: return getTypeFromPredicateTypeNode(node); @@ -4850,18 +4815,27 @@ namespace ts { case SyntaxKind.TypeQuery: return getTypeFromTypeQueryNode(node); case SyntaxKind.ArrayType: + case SyntaxKind.JSDocArrayType: return getTypeFromArrayTypeNode(node); case SyntaxKind.TupleType: return getTypeFromTupleTypeNode(node); case SyntaxKind.UnionType: + case SyntaxKind.JSDocUnionType: return getTypeFromUnionTypeNode(node); case SyntaxKind.IntersectionType: return getTypeFromIntersectionTypeNode(node); case SyntaxKind.ParenthesizedType: - return getTypeFromTypeNode((node).type); + case SyntaxKind.JSDocNullableType: + case SyntaxKind.JSDocNonNullableType: + case SyntaxKind.JSDocConstructorType: + case SyntaxKind.JSDocThisType: + case SyntaxKind.JSDocOptionalType: + return getTypeFromTypeNode((node).type); case SyntaxKind.FunctionType: case SyntaxKind.ConstructorType: case SyntaxKind.TypeLiteral: + case SyntaxKind.JSDocFunctionType: + case SyntaxKind.JSDocRecordType: return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); // This function assumes that an identifier or qualified name is a type expression // Callers should first ensure this by calling isTypeNode @@ -4869,34 +4843,10 @@ namespace ts { case SyntaxKind.QualifiedName: const symbol = getSymbolAtLocation(node); return symbol && getDeclaredTypeOfSymbol(symbol); - case SyntaxKind.JSDocAllType: - return anyType; - case SyntaxKind.JSDocUnknownType: - return unknownType; - case SyntaxKind.JSDocArrayType: - return getTypeFromJSDocArrayType(node); case SyntaxKind.JSDocTupleType: return getTypeFromJSDocTupleType(node); - case SyntaxKind.JSDocUnionType: - return getTypeFromJSDocUnionType(node); - case SyntaxKind.JSDocNullableType: - return getTypeFromTypeNode((node).type); - case SyntaxKind.JSDocNonNullableType: - return getTypeFromTypeNode((node).type); - case SyntaxKind.JSDocTypeReference: - return getTypeFromJSDocTypeReference(node); - case SyntaxKind.JSDocOptionalType: - return getTypeFromTypeNode((node).type); - case SyntaxKind.JSDocFunctionType: - return getTypeFromJSDocFunctionType(node); case SyntaxKind.JSDocVariadicType: return getTypeFromJSDocVariadicType(node); - case SyntaxKind.JSDocConstructorType: - return getTypeFromTypeNode((node).type); - case SyntaxKind.JSDocRecordType: - return getTypeFromJSDocRecordType(node); - case SyntaxKind.JSDocThisType: - return getTypeFromTypeNode((node).type); default: return unknownType; } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 6e0e8018baa..7d76562c0f9 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1475,6 +1475,8 @@ namespace ts { type: JSDocType; } + export type JSDocTypeReferencingNode = JSDocThisType | JSDocConstructorType | JSDocVariadicType | JSDocOptionalType | JSDocNullableType | JSDocNonNullableType; + // @kind(SyntaxKind.JSDocRecordMember) export interface JSDocRecordMember extends PropertySignature { name: Identifier | LiteralExpression; From 0dc485ad2c14e6ad3d2115a9f61366c1976b9d13 Mon Sep 17 00:00:00 2001 From: Asad Saeeduddin Date: Fri, 15 Jan 2016 23:31:45 -0500 Subject: [PATCH 08/34] Added test case --- ...gReturnStatementsAndExpressions.errors.txt | 23 ++++++++++++++++--- ...nsMissingReturnStatementsAndExpressions.js | 20 ++++++++++++++++ ...nsMissingReturnStatementsAndExpressions.ts | 11 +++++++++ 3 files changed, 51 insertions(+), 3 deletions(-) diff --git a/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.errors.txt b/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.errors.txt index 58ffd051d4d..41528f70880 100644 --- a/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.errors.txt +++ b/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.errors.txt @@ -1,9 +1,11 @@ tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(3,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(95,16): error TS2378: A 'get' accessor must return a value. -tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(118,5): error TS1003: Identifier expected. +tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(93,17): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. +tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(101,17): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. +tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(106,16): error TS2378: A 'get' accessor must return a value. +tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(129,5): error TS1003: Identifier expected. -==== tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts (3 errors) ==== +==== tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts (5 errors) ==== function f1(): string { @@ -98,6 +100,21 @@ tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(118,5): e return "Okay, not type annotated."; } + function f19(): void | number { + ~~~~~~~~~~~~~ +!!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. + // Okay; function return type is union containing void + } + + function f20(): any | number { + // Okay; function return type is union containing any + } + + function f21(): number | string { + ~~~~~~~~~~~~~~~ +!!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. + // Not okay; union does not contain void or any + } class C { public get m1() { diff --git a/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.js b/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.js index 4dfe851683a..17468722e20 100644 --- a/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.js +++ b/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.js @@ -91,6 +91,17 @@ function f18() { return "Okay, not type annotated."; } +function f19(): void | number { + // Okay; function return type is union containing void +} + +function f20(): any | number { + // Okay; function return type is union containing any +} + +function f21(): number | string { + // Not okay; union does not contain void or any +} class C { public get m1() { @@ -191,6 +202,15 @@ function f17() { function f18() { return "Okay, not type annotated."; } +function f19() { + // Okay; function return type is union containing void +} +function f20() { + // Okay; function return type is union containing any +} +function f21() { + // Not okay; union does not contain void or any +} var C = (function () { function C() { } diff --git a/tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts b/tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts index fde615af41d..582940038c5 100644 --- a/tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts +++ b/tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts @@ -92,6 +92,17 @@ function f18() { return "Okay, not type annotated."; } +function f19(): void | number { + // Okay; function return type is union containing void +} + +function f20(): any | number { + // Okay; function return type is union containing any +} + +function f21(): number | string { + // Not okay; union does not contain void or any +} class C { public get m1() { From e568892ea52eb0b479f890a2aa833e019426a2c3 Mon Sep 17 00:00:00 2001 From: Asad Saeeduddin Date: Fri, 15 Jan 2016 23:50:30 -0500 Subject: [PATCH 09/34] Allow missing return for unions containing any or void --- doc/spec.md | 10 +++++----- src/compiler/checker.ts | 11 +++++++++-- ...nsMissingReturnStatementsAndExpressions.errors.txt | 5 +---- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/doc/spec.md b/doc/spec.md index 30de2c5a6b6..4c1ec4f2302 100644 --- a/doc/spec.md +++ b/doc/spec.md @@ -265,7 +265,7 @@ function f() { To benefit from this inference, a programmer can use the TypeScript language service. For example, a code editor can incorporate the TypeScript language service and use the service to find the members of a string object as in the following screen shot. -  ![](images/image1.png) +  ![](images/image1.png) In this example, the programmer benefits from type inference without providing type annotations. Some beneficial tools, however, do require the programmer to provide type annotations. In TypeScript, we can express a parameter requirement as in the following code fragment. @@ -413,7 +413,7 @@ This signature denotes that a function may be passed as the parameter of the '$' A typical client would not need to add any additional typing but could just use a community-supplied typing to discover (through statement completion with documentation tips) and verify (through static checking) correct use of the library, as in the following screen shot. -  ![](images/image2.png) +  ![](images/image2.png) Section [3.3](#3.3) provides additional information about object types. @@ -630,7 +630,7 @@ An important goal of TypeScript is to provide accurate and straightforward types JavaScript programming interfaces often include functions whose behavior is discriminated by a string constant passed to the function. The Document Object Model makes heavy use of this pattern. For example, the following screen shot shows that the 'createElement' method of the 'document' object has multiple signatures, some of which identify the types returned when specific strings are passed into the method. -  ![](images/image3.png) +  ![](images/image3.png) The following code fragment uses this feature. Because the 'span' variable is inferred to have the type 'HTMLSpanElement', the code can reference without static error the 'isMultiline' property of 'span'. @@ -641,7 +641,7 @@ span.isMultiLine = false; // OK: HTMLSpanElement has isMultiline property In the following screen shot, a programming tool combines information from overloading on string parameters with contextual typing to infer that the type of the variable 'e' is 'MouseEvent' and that therefore 'e' has a 'clientX' property. -  ![](images/image4.png) +  ![](images/image4.png) Section [3.9.2.4](#3.9.2.4) provides details on how to use string literals in function signatures. @@ -3885,7 +3885,7 @@ function g(x: number) { the inferred return type for 'f' and 'g' is Any because the functions reference themselves through a cycle with no return type annotations. Adding an explicit return type 'number' to either breaks the cycle and causes the return type 'number' to be inferred for the other. -An explicitly typed function whose return type isn't the Void or the Any type must have at least one return statement somewhere in its body. An exception to this rule is if the function implementation consists of a single 'throw' statement. +An explicitly typed function whose return type isn't the Void type, the Any type, or a union type containing the Void or Any type as a constituent must have at least one return statement somewhere in its body. An exception to this rule is if the function implementation consists of a single 'throw' statement. The type of 'this' in a function implementation is the Any type. diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index dd943ec807e..133f09ef422 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2466,6 +2466,12 @@ namespace ts { return type && (type.flags & TypeFlags.Any) !== 0; } + function isUnionContaining(type: Type, kinds: TypeFlags) { + return type + && (type.flags & TypeFlags.Union) + && someConstituentTypeHasKind(type, kinds); + } + // Return the type of a binding element parent. We check SymbolLinks first to see if a type has been // assigned by contextual typing. function getTypeForBindingElementParent(node: VariableLikeDeclaration) { @@ -10201,7 +10207,8 @@ namespace ts { /* *TypeScript Specification 1.0 (6.3) - July 2014 - * An explicitly typed function whose return type isn't the Void or the Any type + * An explicitly typed function whose return type isn't the Void type, + * the Any type, or a union type containing the Void or Any type as a constituent * must have at least one return statement somewhere in its body. * An exception to this rule is if the function implementation consists of a single 'throw' statement. * @param returnType - return type of the function, can be undefined if return type is not explicitly specified @@ -10212,7 +10219,7 @@ namespace ts { } // Functions with with an explicitly specified 'void' or 'any' return type don't need any return expressions. - if (returnType === voidType || isTypeAny(returnType)) { + if (returnType === voidType || isTypeAny(returnType) || isUnionContaining(returnType, TypeFlags.Any) || isUnionContaining(returnType, TypeFlags.Void)) { return; } diff --git a/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.errors.txt b/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.errors.txt index 41528f70880..1ccc296b75b 100644 --- a/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.errors.txt +++ b/tests/baselines/reference/functionsMissingReturnStatementsAndExpressions.errors.txt @@ -1,11 +1,10 @@ tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(3,16): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. -tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(93,17): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(101,17): error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(106,16): error TS2378: A 'get' accessor must return a value. tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(129,5): error TS1003: Identifier expected. -==== tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts (5 errors) ==== +==== tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts (4 errors) ==== function f1(): string { @@ -101,8 +100,6 @@ tests/cases/compiler/functionsMissingReturnStatementsAndExpressions.ts(129,5): e } function f19(): void | number { - ~~~~~~~~~~~~~ -!!! error TS2355: A function whose declared type is neither 'void' nor 'any' must return a value. // Okay; function return type is union containing void } From eb87bad2c88ead32de1739317ffc74c6c524279a Mon Sep 17 00:00:00 2001 From: Asad Saeeduddin Date: Sat, 16 Jan 2016 00:15:19 -0500 Subject: [PATCH 10/34] Removed trailing whitespace --- src/compiler/checker.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 133f09ef422..b7637682f1a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2467,9 +2467,7 @@ namespace ts { } function isUnionContaining(type: Type, kinds: TypeFlags) { - return type - && (type.flags & TypeFlags.Union) - && someConstituentTypeHasKind(type, kinds); + return type && (type.flags & TypeFlags.Union) && someConstituentTypeHasKind(type, kinds); } // Return the type of a binding element parent. We check SymbolLinks first to see if a type has been From 28840863a635b6803505a821bcb18d9638c38012 Mon Sep 17 00:00:00 2001 From: Asad Saeeduddin Date: Tue, 19 Jan 2016 15:23:57 -0500 Subject: [PATCH 11/34] Addressed PR feedback: refactored away helper function, generated spec from docx --- doc/TypeScript Language Specification.docx | Bin 316896 -> 317460 bytes doc/spec.md | 8 ++++---- src/compiler/checker.ts | 6 +----- 3 files changed, 5 insertions(+), 9 deletions(-) diff --git a/doc/TypeScript Language Specification.docx b/doc/TypeScript Language Specification.docx index 78c869175512d02338a61741a2bbbe570aa97bcb..4b8d3998f905a43b52b728204eaeb7c0d7c1e834 100644 GIT binary patch delta 263837 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�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 delta 263299 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%0A?^W29&CG`e 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�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

nRxe;wV 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 diff --git a/doc/spec.md b/doc/spec.md index 4c1ec4f2302..fa69d321056 100644 --- a/doc/spec.md +++ b/doc/spec.md @@ -265,7 +265,7 @@ function f() { To benefit from this inference, a programmer can use the TypeScript language service. For example, a code editor can incorporate the TypeScript language service and use the service to find the members of a string object as in the following screen shot. -  ![](images/image1.png) +  ![](images/image1.png) In this example, the programmer benefits from type inference without providing type annotations. Some beneficial tools, however, do require the programmer to provide type annotations. In TypeScript, we can express a parameter requirement as in the following code fragment. @@ -413,7 +413,7 @@ This signature denotes that a function may be passed as the parameter of the '$' A typical client would not need to add any additional typing but could just use a community-supplied typing to discover (through statement completion with documentation tips) and verify (through static checking) correct use of the library, as in the following screen shot. -  ![](images/image2.png) +  ![](images/image2.png) Section [3.3](#3.3) provides additional information about object types. @@ -630,7 +630,7 @@ An important goal of TypeScript is to provide accurate and straightforward types JavaScript programming interfaces often include functions whose behavior is discriminated by a string constant passed to the function. The Document Object Model makes heavy use of this pattern. For example, the following screen shot shows that the 'createElement' method of the 'document' object has multiple signatures, some of which identify the types returned when specific strings are passed into the method. -  ![](images/image3.png) +  ![](images/image3.png) The following code fragment uses this feature. Because the 'span' variable is inferred to have the type 'HTMLSpanElement', the code can reference without static error the 'isMultiline' property of 'span'. @@ -641,7 +641,7 @@ span.isMultiLine = false; // OK: HTMLSpanElement has isMultiline property In the following screen shot, a programming tool combines information from overloading on string parameters with contextual typing to infer that the type of the variable 'e' is 'MouseEvent' and that therefore 'e' has a 'clientX' property. -  ![](images/image4.png) +  ![](images/image4.png) Section [3.9.2.4](#3.9.2.4) provides details on how to use string literals in function signatures. diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index b7637682f1a..f2e65004b80 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -2466,10 +2466,6 @@ namespace ts { return type && (type.flags & TypeFlags.Any) !== 0; } - function isUnionContaining(type: Type, kinds: TypeFlags) { - return type && (type.flags & TypeFlags.Union) && someConstituentTypeHasKind(type, kinds); - } - // Return the type of a binding element parent. We check SymbolLinks first to see if a type has been // assigned by contextual typing. function getTypeForBindingElementParent(node: VariableLikeDeclaration) { @@ -10217,7 +10213,7 @@ namespace ts { } // Functions with with an explicitly specified 'void' or 'any' return type don't need any return expressions. - if (returnType === voidType || isTypeAny(returnType) || isUnionContaining(returnType, TypeFlags.Any) || isUnionContaining(returnType, TypeFlags.Void)) { + if (returnType === voidType || isTypeAny(returnType) || (returnType && (returnType.flags & TypeFlags.Union) && someConstituentTypeHasKind(returnType, TypeFlags.Any | TypeFlags.Void))) { return; } From b5ed7f3edaccf373adc07dd4018cad85b819cc43 Mon Sep 17 00:00:00 2001 From: zhengbli Date: Tue, 19 Jan 2016 16:30:52 -0800 Subject: [PATCH 12/34] Add support for jsconfig.json in language service --- src/compiler/commandLineParser.ts | 11 ++++++++--- src/compiler/tsc.ts | 2 +- src/server/editorServices.ts | 16 ++++++++++------ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index 247a204e9bd..af795377bc0 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -493,8 +493,9 @@ namespace ts { * @param basePath A root directory to resolve relative path entries in the config * file to. e.g. outDir */ - export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions: CompilerOptions = {}): ParsedCommandLine { - const { options: optionsFromJsonConfigFile, errors } = convertCompilerOptionsFromJson(json["compilerOptions"], basePath); + export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, configFileName: string, existingOptions: CompilerOptions = {}): ParsedCommandLine { + const basePath = getDirectoryPath(configFileName); + const { options: optionsFromJsonConfigFile, errors } = convertCompilerOptionsFromJson(json["compilerOptions"], basePath, configFileName); const options = extend(existingOptions, optionsFromJsonConfigFile); return { @@ -547,10 +548,14 @@ namespace ts { } } - export function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string): { options: CompilerOptions, errors: Diagnostic[] } { + export function convertCompilerOptionsFromJson(jsonOptions: any, basePath: string, configFileName?: string): { options: CompilerOptions, errors: Diagnostic[] } { const options: CompilerOptions = {}; const errors: Diagnostic[] = []; + if (configFileName && getBaseFileName(configFileName) === "jsconfig.json") { + options.allowJs = true; + } + if (!jsonOptions) { return { options, errors }; } diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index 808ee6da804..94dc8b18847 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -376,7 +376,7 @@ namespace ts { sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); return; } - const configParseResult = parseJsonConfigFileContent(configObject, sys, getDirectoryPath(configFileName), commandLine.options); + const configParseResult = parseJsonConfigFileContent(configObject, sys, configFileName, commandLine.options); if (configParseResult.errors.length > 0) { reportDiagnostics(configParseResult.errors, /* compilerHost */ undefined); sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index 7cc3a6c96a6..a43252868d8 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -1026,10 +1026,16 @@ namespace ts.server { // the newly opened file. findConfigFile(searchPath: string): string { while (true) { - const fileName = ts.combinePaths(searchPath, "tsconfig.json"); - if (this.host.fileExists(fileName)) { - return fileName; + const tsconfigFileName = ts.combinePaths(searchPath, "tsconfig.json"); + if (this.host.fileExists(tsconfigFileName)) { + return tsconfigFileName; } + + const jsconfigFileName = ts.combinePaths(searchPath, "jsconfig.json"); + if (this.host.fileExists(jsconfigFileName)) { + return jsconfigFileName; + } + const parentPath = ts.getDirectoryPath(searchPath); if (parentPath === searchPath) { break; @@ -1172,15 +1178,13 @@ namespace ts.server { configFileToProjectOptions(configFilename: string): { succeeded: boolean, projectOptions?: ProjectOptions, error?: ProjectOpenResult } { configFilename = ts.normalizePath(configFilename); - // file references will be relative to dirPath (or absolute) - const dirPath = ts.getDirectoryPath(configFilename); const contents = this.host.readFile(configFilename); const rawConfig: { config?: ProjectOptions; error?: Diagnostic; } = ts.parseConfigFileTextToJson(configFilename, contents); if (rawConfig.error) { return { succeeded: false, error: rawConfig.error }; } else { - const parsedCommandLine = ts.parseJsonConfigFileContent(rawConfig.config, this.host, dirPath); + const parsedCommandLine = ts.parseJsonConfigFileContent(rawConfig.config, this.host, configFilename); Debug.assert(!!parsedCommandLine.fileNames); if (parsedCommandLine.errors && (parsedCommandLine.errors.length > 0)) { From d64b603e4bf07935d129ad38d4488b0bfaba11c0 Mon Sep 17 00:00:00 2001 From: Zhengbo Li Date: Wed, 20 Jan 2016 16:53:15 -0800 Subject: [PATCH 13/34] revert breaking changes --- src/compiler/commandLineParser.ts | 5 ++--- src/compiler/tsc.ts | 4 ++-- src/server/editorServices.ts | 32 ++++++++++++++++--------------- 3 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index af795377bc0..2e6727749f1 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -493,8 +493,7 @@ namespace ts { * @param basePath A root directory to resolve relative path entries in the config * file to. e.g. outDir */ - export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, configFileName: string, existingOptions: CompilerOptions = {}): ParsedCommandLine { - const basePath = getDirectoryPath(configFileName); + export function parseJsonConfigFileContent(json: any, host: ParseConfigHost, basePath: string, existingOptions: CompilerOptions = {}, configFileName?: string): ParsedCommandLine { const { options: optionsFromJsonConfigFile, errors } = convertCompilerOptionsFromJson(json["compilerOptions"], basePath, configFileName); const options = extend(existingOptions, optionsFromJsonConfigFile); @@ -524,7 +523,7 @@ namespace ts { for (const extension of supportedExtensions) { const filesInDirWithExtension = host.readDirectory(basePath, extension, exclude); for (const fileName of filesInDirWithExtension) { - // .ts extension would read the .d.ts extension files too but since .d.ts is lower priority extension, + // .ts extension would read the .d.ts extension files too but since .d.ts is lower priority extension, // lets pick them when its turn comes up if (extension === ".ts" && fileExtensionIs(fileName, ".d.ts")) { continue; diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index 94dc8b18847..9b2457d0916 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -340,7 +340,7 @@ namespace ts { if (sys.watchDirectory && configFileName) { const directory = ts.getDirectoryPath(configFileName); directoryWatcher = sys.watchDirectory( - // When the configFileName is just "tsconfig.json", the watched directory should be + // When the configFileName is just "tsconfig.json", the watched directory should be // the current direcotry; if there is a given "project" parameter, then the configFileName // is an absolute file name. directory == "" ? "." : directory, @@ -376,7 +376,7 @@ namespace ts { sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); return; } - const configParseResult = parseJsonConfigFileContent(configObject, sys, configFileName, commandLine.options); + const configParseResult = parseJsonConfigFileContent(configObject, sys, getDirectoryPath(configFileName), commandLine.options); if (configParseResult.errors.length > 0) { reportDiagnostics(configParseResult.errors, /* compilerHost */ undefined); sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index a43252868d8..e2ec5cc159f 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -120,7 +120,7 @@ namespace ts.server { if (!resolution) { const existingResolution = currentResolutionsInFile && ts.lookUp(currentResolutionsInFile, moduleName); if (moduleResolutionIsValid(existingResolution)) { - // ok, it is safe to use existing module resolution results + // ok, it is safe to use existing module resolution results resolution = existingResolution; } else { @@ -145,8 +145,8 @@ namespace ts.server { } if (resolution.resolvedModule) { - // TODO: consider checking failedLookupLocations - // TODO: use lastCheckTime to track expiration for module name resolution + // TODO: consider checking failedLookupLocations + // TODO: use lastCheckTime to track expiration for module name resolution return true; } @@ -483,7 +483,7 @@ namespace ts.server { openFileRootsConfigured: ScriptInfo[] = []; // a path to directory watcher map that detects added tsconfig files directoryWatchersForTsconfig: ts.Map = {}; - // count of how many projects are using the directory watcher. If the + // count of how many projects are using the directory watcher. If the // number becomes 0 for a watcher, then we should close it. directoryWatchersRefCount: ts.Map = {}; hostConfiguration: HostConfiguration; @@ -564,11 +564,11 @@ namespace ts.server { // We check if the project file list has changed. If so, we update the project. if (!arrayIsEqualTo(currentRootFiles && currentRootFiles.sort(), newRootFiles && newRootFiles.sort())) { // For configured projects, the change is made outside the tsconfig file, and - // it is not likely to affect the project for other files opened by the client. We can + // it is not likely to affect the project for other files opened by the client. We can // just update the current project. this.updateConfiguredProject(project); - // Call updateProjectStructure to clean up inferred projects we may have + // Call updateProjectStructure to clean up inferred projects we may have // created for the new files this.updateProjectStructure(); } @@ -792,8 +792,8 @@ namespace ts.server { * @param info The file that has been closed or newly configured */ closeOpenFile(info: ScriptInfo) { - // Closing file should trigger re-reading the file content from disk. This is - // because the user may chose to discard the buffer content before saving + // Closing file should trigger re-reading the file content from disk. This is + // because the user may chose to discard the buffer content before saving // to the disk, and the server's version of the file can be out of sync. info.svc.reloadFromFile(info.fileName); @@ -891,8 +891,8 @@ namespace ts.server { } /** - * This function is to update the project structure for every projects. - * It is called on the premise that all the configured projects are + * This function is to update the project structure for every projects. + * It is called on the premise that all the configured projects are * up to date. */ updateProjectStructure() { @@ -946,7 +946,7 @@ namespace ts.server { if (rootFile.defaultProject && rootFile.defaultProject.isConfiguredProject()) { // If the root file has already been added into a configured project, - // meaning the original inferred project is gone already. + // meaning the original inferred project is gone already. if (!rootedProject.isConfiguredProject()) { this.removeProject(rootedProject); } @@ -1059,9 +1059,9 @@ namespace ts.server { } /** - * This function tries to search for a tsconfig.json for the given file. If we found it, + * This function tries to search for a tsconfig.json for the given file. If we found it, * we first detect if there is already a configured project created for it: if so, we re-read - * the tsconfig file content and update the project; otherwise we create a new one. + * the tsconfig file content and update the project; otherwise we create a new one. */ openOrUpdateConfiguredProjectForFile(fileName: string) { const searchPath = ts.normalizePath(getDirectoryPath(fileName)); @@ -1178,13 +1178,15 @@ namespace ts.server { configFileToProjectOptions(configFilename: string): { succeeded: boolean, projectOptions?: ProjectOptions, error?: ProjectOpenResult } { configFilename = ts.normalizePath(configFilename); + // file references will be relative to dirPath (or absolute) + const dirPath = ts.getDirectoryPath(configFilename); const contents = this.host.readFile(configFilename); const rawConfig: { config?: ProjectOptions; error?: Diagnostic; } = ts.parseConfigFileTextToJson(configFilename, contents); if (rawConfig.error) { return { succeeded: false, error: rawConfig.error }; } else { - const parsedCommandLine = ts.parseJsonConfigFileContent(rawConfig.config, this.host, configFilename); + const parsedCommandLine = ts.parseJsonConfigFileContent(rawConfig.config, this.host, dirPath, /*existingOptions*/ {}, configFilename); Debug.assert(!!parsedCommandLine.fileNames); if (parsedCommandLine.errors && (parsedCommandLine.errors.length > 0)) { @@ -1263,7 +1265,7 @@ namespace ts.server { info = this.openFile(fileName, /*openedByClient*/ false); } else { - // if the root file was opened by client, it would belong to either + // if the root file was opened by client, it would belong to either // openFileRoots or openFileReferenced. if (info.isOpen) { if (this.openFileRoots.indexOf(info) >= 0) { From ea94a05feb963db390b875894d52dfedcde40d5f Mon Sep 17 00:00:00 2001 From: Zhengbo Li Date: Thu, 21 Jan 2016 10:43:07 -0800 Subject: [PATCH 14/34] Add support for jsconfig in shims --- src/services/shims.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/services/shims.ts b/src/services/shims.ts index 3dc28763b17..9ca3f19244d 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -946,7 +946,8 @@ namespace ts { }; } - const configFile = parseJsonConfigFileContent(result.config, this.host, getDirectoryPath(normalizeSlashes(fileName))); + const normalizedFileName = normalizeSlashes(fileName); + const configFile = parseJsonConfigFileContent(result.config, this.host, getDirectoryPath(normalizedFileName), /*existingOptions*/ {}, normalizedFileName); return { options: configFile.options, From 2653a8da461eb9c43e0f6fdb47c29c0a95b9741e Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Thu, 21 Jan 2016 12:27:11 -0800 Subject: [PATCH 15/34] Treat .js as JSX --- src/compiler/parser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index e391408b419..16196e277dc 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -546,7 +546,7 @@ namespace ts { function getLanguageVariant(fileName: string) { // .tsx and .jsx files are treated as jsx language variant. - return fileExtensionIs(fileName, ".tsx") || fileExtensionIs(fileName, ".jsx") ? LanguageVariant.JSX : LanguageVariant.Standard; + return fileExtensionIs(fileName, ".tsx") || fileExtensionIs(fileName, ".jsx") || fileExtensionIs(fileName, '.js') ? LanguageVariant.JSX : LanguageVariant.Standard; } function initializeState(fileName: string, _sourceText: string, languageVersion: ScriptTarget, isJavaScriptFile: boolean, _syntaxCursor: IncrementalParser.SyntaxCursor) { From 31f5502f2b4ae4e4ad1253c0f63b5e0241c8447f Mon Sep 17 00:00:00 2001 From: Zhengbo Li Date: Thu, 21 Jan 2016 16:05:44 -0800 Subject: [PATCH 16/34] set default module to commonjs for jsconfig.json --- src/compiler/commandLineParser.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts index 2e6727749f1..733e3158593 100644 --- a/src/compiler/commandLineParser.ts +++ b/src/compiler/commandLineParser.ts @@ -552,6 +552,7 @@ namespace ts { const errors: Diagnostic[] = []; if (configFileName && getBaseFileName(configFileName) === "jsconfig.json") { + options.module = ModuleKind.CommonJS; options.allowJs = true; } From 1eda3efbed0c605b7c354a5d3e0002f4ec14652c Mon Sep 17 00:00:00 2001 From: YuichiNukiyama Date: Fri, 22 Jan 2016 12:08:28 +0000 Subject: [PATCH 17/34] Add Array.prototype.includes Add Array.prototype.includes method. method of comments I've quoted from [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes). And change Jakefiles.js to build lib.es7.d.ts. --- Jakefile.js | 4 ++- src/lib/es7.d.ts | 89 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 src/lib/es7.d.ts diff --git a/Jakefile.js b/Jakefile.js index 7024ad2afdf..7b85aacaa89 100644 --- a/Jakefile.js +++ b/Jakefile.js @@ -169,7 +169,9 @@ var librarySourceMap = [ { target: "lib.scriptHost.d.ts", sources: ["importcore.d.ts", "scriptHost.d.ts"], }, { target: "lib.d.ts", sources: ["header.d.ts", "core.d.ts", "intl.d.ts", "dom.generated.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"], }, { target: "lib.core.es6.d.ts", sources: ["header.d.ts", "core.d.ts", "es6.d.ts"]}, - { target: "lib.es6.d.ts", sources: ["header.d.ts", "es6.d.ts", "core.d.ts", "intl.d.ts", "dom.generated.d.ts", "dom.es6.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"] } + { target: "lib.es6.d.ts", sources: ["header.d.ts", "es6.d.ts", "core.d.ts", "intl.d.ts", "dom.generated.d.ts", "dom.es6.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"] }, + { target: "lib.core.es7.d.ts", sources: ["header.d.ts", "core.d.ts", "es6.d.ts", "es7.d.ts"]}, + { target: "lib.es7.d.ts", sources: ["header.d.ts", "es6.d.ts", "es7.d.ts", "core.d.ts", "intl.d.ts", "dom.generated.d.ts", "dom.es6.d.ts", "webworker.importscripts.d.ts", "scriptHost.d.ts"] } ]; var libraryTargets = librarySourceMap.map(function (f) { diff --git a/src/lib/es7.d.ts b/src/lib/es7.d.ts new file mode 100644 index 00000000000..f5dac64b43c --- /dev/null +++ b/src/lib/es7.d.ts @@ -0,0 +1,89 @@ +interface Array { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: T, fromIndex?: number): boolean; +} + +interface Int8Array { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: Int8Array, fromIndex?: number): boolean; +} + +interface Uint8Array { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: number, fromIndex?: number): boolean; +} + +interface Uint8ClampedArray { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: number, fromIndex?: number): boolean; +} + +interface Int16Array { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: number, fromIndex?: number): boolean; +} + +interface Uint16Array { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: number, fromIndex?: number): boolean; +} + +interface Int32Array { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: number, fromIndex?: number): boolean; +} + +interface Uint32Array { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: number, fromIndex?: number): boolean; +} + +interface Float32Array { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: number, fromIndex?: number): boolean; +} + +interface Float64Array { + /** + * Determines whether an array includes a certain element, returning true or false as appropriate. + * @param searchElement The element to search for. + * @param fromIndex The position in this array at which to begin searching for searchElement. + */ + includes(searchElement: number, fromIndex?: number): boolean; +} \ No newline at end of file From d5a585fb96c7766c17af16d1eebce6406ee95032 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Fri, 22 Jan 2016 13:43:23 -0800 Subject: [PATCH 18/34] Fix 'includes' method in 'Int8Array'. --- src/lib/es7.d.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/lib/es7.d.ts b/src/lib/es7.d.ts index f5dac64b43c..17b3eaac1d3 100644 --- a/src/lib/es7.d.ts +++ b/src/lib/es7.d.ts @@ -2,7 +2,7 @@ interface Array { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ includes(searchElement: T, fromIndex?: number): boolean; } @@ -11,16 +11,16 @@ interface Int8Array { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ - includes(searchElement: Int8Array, fromIndex?: number): boolean; + includes(searchElement: number, fromIndex?: number): boolean; } interface Uint8Array { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ includes(searchElement: number, fromIndex?: number): boolean; } @@ -29,7 +29,7 @@ interface Uint8ClampedArray { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ includes(searchElement: number, fromIndex?: number): boolean; } @@ -38,7 +38,7 @@ interface Int16Array { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ includes(searchElement: number, fromIndex?: number): boolean; } @@ -47,7 +47,7 @@ interface Uint16Array { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ includes(searchElement: number, fromIndex?: number): boolean; } @@ -56,7 +56,7 @@ interface Int32Array { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ includes(searchElement: number, fromIndex?: number): boolean; } @@ -65,7 +65,7 @@ interface Uint32Array { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ includes(searchElement: number, fromIndex?: number): boolean; } @@ -74,7 +74,7 @@ interface Float32Array { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ includes(searchElement: number, fromIndex?: number): boolean; } @@ -83,7 +83,7 @@ interface Float64Array { /** * Determines whether an array includes a certain element, returning true or false as appropriate. * @param searchElement The element to search for. - * @param fromIndex The position in this array at which to begin searching for searchElement. + * @param fromIndex The position in this array at which to begin searching for searchElement. */ includes(searchElement: number, fromIndex?: number): boolean; } \ No newline at end of file From 6303d8c723a772b6f12459c561fb88e83232a26a Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 22 Jan 2016 15:13:54 -0800 Subject: [PATCH 19/34] Remove incorrect changes from server.ts --- src/server/server.ts | 46 -------------------------------------------- 1 file changed, 46 deletions(-) diff --git a/src/server/server.ts b/src/server/server.ts index 5c2fd7d1c43..d9f078ac0eb 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -7,58 +7,12 @@ namespace ts.server { const readline: NodeJS.ReadLine = require("readline"); const fs: typeof NodeJS.fs = require("fs"); - // TODO: "net" module not defined in local node.d.ts - const net: any = require("net"); - const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false, }); - // Need to write directly to stdout, else rl.write also causes an input "line" event - // See https://github.com/joyent/node/issues/4243 - let writeHost = (data: string) => process.stdout.write(data); - - // Stubs for I/O - const onInput = (input: string) => { return; }; - const onClose = () => { return; }; - - // Use a socket for comms if defined - const tss_debug: string = process.env["TSS_DEBUG"]; - let tcp_port = 0; - if (tss_debug) { - tss_debug.split(" ").forEach( param => { - if (param.indexOf("port=") === 0) { - tcp_port = parseInt(param.substring(5)); - } - }); - if (tcp_port) { - net.createServer( (socket: any) => { - // Called once a connection is made - socket.setEncoding("utf8"); - // Wire up the I/O handers to the socket - writeHost = (data: string) => { - socket.write(data); - return true; - }; - socket.on("data", (data: string) => { - // May get multiple requests in one network read - if (data) { - data.trim().split(/(\r\n)|\n/).forEach(line => onInput(line)); - } - }); - socket.on("end", onClose); - - }).listen(tcp_port); - } - } - if (!tcp_port) { - // If not using tcp, wire up the I/O handler to stdin/stdout - rl.on("line", (input: string) => onInput(input)); - rl.on("close", () => onClose()); - } - class Logger implements ts.server.Logger { fd = -1; seq = 0; From af4fb093f762830fdd8170959774c144b1a638b5 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 22 Jan 2016 15:14:29 -0800 Subject: [PATCH 20/34] Rename getTypeParametersFromJSDocTemplate --- src/compiler/checker.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 9c22ca33620..26b80b1aeee 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3958,7 +3958,7 @@ namespace ts { return getIndexTypeOfStructuredType(getApparentType(type), kind); } - function getTypeParametersFromSignatureDeclaration(declaration: SignatureDeclaration): TypeParameter[] { + function getTypeParametersFromJSDocTemplate(declaration: SignatureDeclaration): TypeParameter[] { if (declaration.parserContextFlags & ParserContextFlags.JavaScriptFile) { const templateTag = getJSDocTemplateTag(declaration); if (templateTag) { @@ -4055,7 +4055,7 @@ namespace ts { : undefined; const typeParameters = classType ? classType.localTypeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : - getTypeParametersFromSignatureDeclaration(declaration); + getTypeParametersFromJSDocTemplate(declaration); const parameters: Symbol[] = []; let hasStringLiterals = false; let minArgumentCount = -1; From a07a7c0b3cec17c4abadc1dad24b911c5b821656 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 22 Jan 2016 15:14:58 -0800 Subject: [PATCH 21/34] Remove unreachable code --- src/compiler/checker.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 26b80b1aeee..fb083d5c5c2 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -3966,10 +3966,6 @@ namespace ts { } } - if (declaration.typeParameters) { - return getTypeParametersFromDeclaration(declaration.typeParameters); - } - return undefined; } From 0d480a6e1b8c0bf8b8799ea70f2dab39c2ad3c88 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 22 Jan 2016 15:15:58 -0800 Subject: [PATCH 22/34] Remove value-side JSDoc type lookup fallback --- src/compiler/checker.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index fb083d5c5c2..82b6acadc5a 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4444,14 +4444,7 @@ namespace ts { return unknownSymbol; } - let symbol = resolveEntityName(typeReferenceName, SymbolFlags.Type); - if (!symbol && node.kind === SyntaxKind.JSDocTypeReference) { - // If the reference didn't resolve to a type, try seeing if results to a - // value. If it does, get the type of that value. - symbol = resolveEntityName(typeReferenceName, SymbolFlags.Value); - } - - return symbol || unknownSymbol; + return resolveEntityName(typeReferenceName, SymbolFlags.Type) || unknownSymbol; } function getTypeReferenceType(node: TypeReferenceNode | ExpressionWithTypeArguments | JSDocTypeReference, symbol: Symbol) { From d54f3cb7e7780e4fbb3dc045001a32ecff2c521f Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 22 Jan 2016 15:16:27 -0800 Subject: [PATCH 23/34] Remove obsoleted test --- tests/cases/fourslash/getJavaScriptQuickInfo7.ts | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 tests/cases/fourslash/getJavaScriptQuickInfo7.ts diff --git a/tests/cases/fourslash/getJavaScriptQuickInfo7.ts b/tests/cases/fourslash/getJavaScriptQuickInfo7.ts deleted file mode 100644 index 282f5aeabfd..00000000000 --- a/tests/cases/fourslash/getJavaScriptQuickInfo7.ts +++ /dev/null @@ -1,10 +0,0 @@ -/// - -// @allowNonTsExtensions: true -// @Filename: Foo.js -//// function f(a,b) { } -//// /** @type {f} */ -//// var v/**/ - -goTo.marker(); -verify.quickInfoIs('var v: (a: any, b: any) => void'); \ No newline at end of file From 57fb5fa67bfd7edfc3e8279f2070a474477f58e1 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 22 Jan 2016 15:17:20 -0800 Subject: [PATCH 24/34] Consolidate branches --- src/compiler/checker.ts | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 82b6acadc5a..4ea8c71e054 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -7283,25 +7283,25 @@ namespace ts { return container.flags & NodeFlags.Static ? getTypeOfSymbol(symbol) : (getDeclaredTypeOfSymbol(symbol)).thisType; } - if (container.parserContextFlags & ParserContextFlags.JavaScriptFile) { + if (isInJavaScriptFile(node)) { const type = getTypeForThisExpressionFromJSDoc(container); if (type && type !== unknownType) { return type; } - } - // If this is a function in a JS file, it might be a class method. Check if it's the RHS - // of a x.prototype.y = function [name]() { .... } - if (isInJavaScriptFile(node) && container.kind === SyntaxKind.FunctionExpression) { - if (getSpecialPropertyAssignmentKind(container.parent) === SpecialPropertyAssignmentKind.PrototypeProperty) { - // Get the 'x' of 'x.prototype.y = f' (here, 'f' is 'container') - const className = (((container.parent as BinaryExpression) // x.protoype.y = f - .left as PropertyAccessExpression) // x.prototype.y - .expression as PropertyAccessExpression) // x.prototype - .expression; // x - const classSymbol = checkExpression(className).symbol; - if (classSymbol && classSymbol.members && (classSymbol.flags & SymbolFlags.Function)) { - return getInferredClassType(classSymbol); + // If this is a function in a JS file, it might be a class method. Check if it's the RHS + // of a x.prototype.y = function [name]() { .... } + if (container.kind === SyntaxKind.FunctionExpression) { + if (getSpecialPropertyAssignmentKind(container.parent) === SpecialPropertyAssignmentKind.PrototypeProperty) { + // Get the 'x' of 'x.prototype.y = f' (here, 'f' is 'container') + const className = (((container.parent as BinaryExpression) // x.protoype.y = f + .left as PropertyAccessExpression) // x.prototype.y + .expression as PropertyAccessExpression) // x.prototype + .expression; // x + const classSymbol = checkExpression(className).symbol; + if (classSymbol && classSymbol.members && (classSymbol.flags & SymbolFlags.Function)) { + return getInferredClassType(classSymbol); + } } } } From 00398d6c9e0a326fe712d083149d99d306f73b4c Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Fri, 22 Jan 2016 15:41:00 -0800 Subject: [PATCH 25/34] Remove unrelated changes --- src/compiler/sys.ts | 2 ++ src/harness/harness.ts | 2 +- src/services/services.ts | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/compiler/sys.ts b/src/compiler/sys.ts index 094bc810036..bf25d39aa43 100644 --- a/src/compiler/sys.ts +++ b/src/compiler/sys.ts @@ -605,6 +605,8 @@ namespace ts { return getWScriptSystem(); } else if (typeof process !== "undefined" && process.nextTick && !process.browser && typeof require !== "undefined") { + // process and process.nextTick checks if current environment is node-like + // process.browser check excludes webpack and browserify return getNodeSystem(); } else if (typeof ChakraHost !== "undefined") { diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 329834cb15d..7fd81973172 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1593,7 +1593,7 @@ namespace Harness { return { unitName: libFile, content: io.readFile(libFile) }; } - if (Error) (Error).stackTraceLimit = 25; + if (Error) (Error).stackTraceLimit = 1; } // TODO: not sure why Utils.evalFile isn't working with this, eventually will concat it like old compiler instead of eval diff --git a/src/services/services.ts b/src/services/services.ts index 1d0cc4a4597..0fae1c0aa45 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2188,6 +2188,7 @@ namespace ts { } return true; } + return false; } @@ -2370,7 +2371,6 @@ namespace ts { // skip open bracket token = scanner.scan(); - let i = 0; // scan until ']' or EOF while (token !== SyntaxKind.CloseBracketToken && token !== SyntaxKind.EndOfFileToken) { From 5cb13f390967ea50f92894149713d14321c31984 Mon Sep 17 00:00:00 2001 From: falsandtru Date: Sat, 23 Jan 2016 19:08:32 +0900 Subject: [PATCH 26/34] Remove `clear` method in `WeakSet` and `WeakMap` --- src/lib/es6.d.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 44e5e49f984..f5d6b06bc47 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -819,7 +819,6 @@ interface MapConstructor { declare var Map: MapConstructor; interface WeakMap { - clear(): void; delete(key: K): boolean; get(key: K): V; has(key: K): boolean; @@ -859,7 +858,6 @@ declare var Set: SetConstructor; interface WeakSet { add(value: T): WeakSet; - clear(): void; delete(value: T): boolean; has(value: T): boolean; [Symbol.toStringTag]: "WeakSet"; From ac196eb2aa509c8d270fa47a2e2a8defe23dc034 Mon Sep 17 00:00:00 2001 From: york yao Date: Sun, 24 Jan 2016 17:10:44 +0800 Subject: [PATCH 27/34] use `const` rather than `var` when emitting external import declaration and the target is es6 --- src/compiler/emitter.ts | 23 ++++++++++++++++--- .../reference/asyncImportedPromise_es6.js | 2 +- ...rtDefaultBindingFollowedWithNamedImport.js | 10 ++++---- .../reference/es6ImportNameSpaceImport.js | 2 +- .../reference/es6ImportNamedImport.js | 18 +++++++-------- .../es6ImportNamedImportInExportAssignment.js | 2 +- .../reference/exportsAndImports1-es6.js | 2 +- .../reference/exportsAndImports2-es6.js | 2 +- .../reference/exportsAndImports3-es6.js | 2 +- .../reference/exportsAndImports4-es6.js | 12 +++++----- .../shorthandPropertyAssignmentInES6Module.js | 4 ++-- 11 files changed, 48 insertions(+), 31 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 44cb0ea3ccf..dbde9c14153 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -6107,7 +6107,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge if (namespaceDeclaration && !isDefaultImport(node)) { // import x = require("foo") // import * as x from "foo" - if (!isExportedImport) write("var "); + if (!isExportedImport) { + if (languageVersion !== ScriptTarget.ES6) { + write("var "); + } + else { + write("const "); + } + }; emitModuleMemberName(namespaceDeclaration); write(" = "); } @@ -6119,7 +6126,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge // import d, { x, y } from "foo" const isNakedImport = SyntaxKind.ImportDeclaration && !(node).importClause; if (!isNakedImport) { - write("var "); + if (languageVersion !== ScriptTarget.ES6) { + write("var "); + } + else { + write("const "); + } write(getGeneratedNameForNode(node)); write(" = "); } @@ -6146,7 +6158,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge } else if (namespaceDeclaration && isDefaultImport(node)) { // import d, * as x from "foo" - write("var "); + if (languageVersion !== ScriptTarget.ES6) { + write("var "); + } + else { + write("const "); + } emitModuleMemberName(namespaceDeclaration); write(" = "); write(getGeneratedNameForNode(node)); diff --git a/tests/baselines/reference/asyncImportedPromise_es6.js b/tests/baselines/reference/asyncImportedPromise_es6.js index d861012488c..a63d7844f4c 100644 --- a/tests/baselines/reference/asyncImportedPromise_es6.js +++ b/tests/baselines/reference/asyncImportedPromise_es6.js @@ -24,7 +24,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge step((generator = generator.call(thisArg, _arguments)).next()); }); }; -var task_1 = require("./task"); +const task_1 = require("./task"); class Test { example() { return __awaiter(this, void 0, task_1.Task, function* () { return; }); diff --git a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport.js b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport.js index d7dfe29208d..4bff2abf82d 100644 --- a/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport.js +++ b/tests/baselines/reference/es6ImportDefaultBindingFollowedWithNamedImport.js @@ -31,16 +31,16 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = {}; //// [es6ImportDefaultBindingFollowedWithNamedImport_1.js] "use strict"; -var es6ImportDefaultBindingFollowedWithNamedImport_0_1 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); +const es6ImportDefaultBindingFollowedWithNamedImport_0_1 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_1.a; -var es6ImportDefaultBindingFollowedWithNamedImport_0_2 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); +const es6ImportDefaultBindingFollowedWithNamedImport_0_2 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_2.a; -var es6ImportDefaultBindingFollowedWithNamedImport_0_3 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); +const es6ImportDefaultBindingFollowedWithNamedImport_0_3 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_3.x; var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_3.a; -var es6ImportDefaultBindingFollowedWithNamedImport_0_4 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); +const es6ImportDefaultBindingFollowedWithNamedImport_0_4 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_4.x; -var es6ImportDefaultBindingFollowedWithNamedImport_0_5 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); +const es6ImportDefaultBindingFollowedWithNamedImport_0_5 = require("./es6ImportDefaultBindingFollowedWithNamedImport_0"); var x1 = es6ImportDefaultBindingFollowedWithNamedImport_0_5.m; diff --git a/tests/baselines/reference/es6ImportNameSpaceImport.js b/tests/baselines/reference/es6ImportNameSpaceImport.js index 685e1cf643c..8e109779f45 100644 --- a/tests/baselines/reference/es6ImportNameSpaceImport.js +++ b/tests/baselines/reference/es6ImportNameSpaceImport.js @@ -15,7 +15,7 @@ import * as nameSpaceBinding2 from "./es6ImportNameSpaceImport_0"; // elide this exports.a = 10; //// [es6ImportNameSpaceImport_1.js] "use strict"; -var nameSpaceBinding = require("./es6ImportNameSpaceImport_0"); +const nameSpaceBinding = require("./es6ImportNameSpaceImport_0"); var x = nameSpaceBinding.a; diff --git a/tests/baselines/reference/es6ImportNamedImport.js b/tests/baselines/reference/es6ImportNamedImport.js index 73fe8f4ec1b..8dbdf7ce6f1 100644 --- a/tests/baselines/reference/es6ImportNamedImport.js +++ b/tests/baselines/reference/es6ImportNamedImport.js @@ -53,26 +53,26 @@ exports.z2 = 10; exports.aaaa = 10; //// [es6ImportNamedImport_1.js] "use strict"; -var es6ImportNamedImport_0_1 = require("./es6ImportNamedImport_0"); +const es6ImportNamedImport_0_1 = require("./es6ImportNamedImport_0"); var xxxx = es6ImportNamedImport_0_1.a; -var es6ImportNamedImport_0_2 = require("./es6ImportNamedImport_0"); +const es6ImportNamedImport_0_2 = require("./es6ImportNamedImport_0"); var xxxx = es6ImportNamedImport_0_2.a; -var es6ImportNamedImport_0_3 = require("./es6ImportNamedImport_0"); +const es6ImportNamedImport_0_3 = require("./es6ImportNamedImport_0"); var xxxx = es6ImportNamedImport_0_3.x; var xxxx = es6ImportNamedImport_0_3.a; -var es6ImportNamedImport_0_4 = require("./es6ImportNamedImport_0"); +const es6ImportNamedImport_0_4 = require("./es6ImportNamedImport_0"); var xxxx = es6ImportNamedImport_0_4.x; -var es6ImportNamedImport_0_5 = require("./es6ImportNamedImport_0"); +const es6ImportNamedImport_0_5 = require("./es6ImportNamedImport_0"); var xxxx = es6ImportNamedImport_0_5.m; -var es6ImportNamedImport_0_6 = require("./es6ImportNamedImport_0"); +const es6ImportNamedImport_0_6 = require("./es6ImportNamedImport_0"); var xxxx = es6ImportNamedImport_0_6.a1; var xxxx = es6ImportNamedImport_0_6.x1; -var es6ImportNamedImport_0_7 = require("./es6ImportNamedImport_0"); +const es6ImportNamedImport_0_7 = require("./es6ImportNamedImport_0"); var xxxx = es6ImportNamedImport_0_7.a1; var xxxx = es6ImportNamedImport_0_7.x1; -var es6ImportNamedImport_0_8 = require("./es6ImportNamedImport_0"); +const es6ImportNamedImport_0_8 = require("./es6ImportNamedImport_0"); var z111 = es6ImportNamedImport_0_8.z1; -var es6ImportNamedImport_0_9 = require("./es6ImportNamedImport_0"); +const es6ImportNamedImport_0_9 = require("./es6ImportNamedImport_0"); var z2 = es6ImportNamedImport_0_9.z2; // z2 shouldn't give redeclare error diff --git a/tests/baselines/reference/es6ImportNamedImportInExportAssignment.js b/tests/baselines/reference/es6ImportNamedImportInExportAssignment.js index b67f61e88ae..38766d32cd9 100644 --- a/tests/baselines/reference/es6ImportNamedImportInExportAssignment.js +++ b/tests/baselines/reference/es6ImportNamedImportInExportAssignment.js @@ -13,7 +13,7 @@ export = a; exports.a = 10; //// [es6ImportNamedImportInExportAssignment_1.js] "use strict"; -var es6ImportNamedImportInExportAssignment_0_1 = require("./es6ImportNamedImportInExportAssignment_0"); +const es6ImportNamedImportInExportAssignment_0_1 = require("./es6ImportNamedImportInExportAssignment_0"); module.exports = es6ImportNamedImportInExportAssignment_0_1.a; diff --git a/tests/baselines/reference/exportsAndImports1-es6.js b/tests/baselines/reference/exportsAndImports1-es6.js index ece98a80318..3ac5aeb0dc5 100644 --- a/tests/baselines/reference/exportsAndImports1-es6.js +++ b/tests/baselines/reference/exportsAndImports1-es6.js @@ -67,7 +67,7 @@ exports.M = t1_1.M; exports.a = t1_1.a; //// [t3.js] "use strict"; -var t1_1 = require("./t1"); +const t1_1 = require("./t1"); exports.v = t1_1.v; exports.f = t1_1.f; exports.C = t1_1.C; diff --git a/tests/baselines/reference/exportsAndImports2-es6.js b/tests/baselines/reference/exportsAndImports2-es6.js index 865534b2851..56639bdbecf 100644 --- a/tests/baselines/reference/exportsAndImports2-es6.js +++ b/tests/baselines/reference/exportsAndImports2-es6.js @@ -24,6 +24,6 @@ exports.y = t1_1.x; exports.x = t1_1.y; //// [t3.js] "use strict"; -var t1_1 = require("./t1"); +const t1_1 = require("./t1"); exports.y = t1_1.x; exports.x = t1_1.y; diff --git a/tests/baselines/reference/exportsAndImports3-es6.js b/tests/baselines/reference/exportsAndImports3-es6.js index ed509d31437..ea16836b1f2 100644 --- a/tests/baselines/reference/exportsAndImports3-es6.js +++ b/tests/baselines/reference/exportsAndImports3-es6.js @@ -69,7 +69,7 @@ exports.M = t1_1.M1; exports.a = t1_1.a1; //// [t3.js] "use strict"; -var t1_1 = require("./t1"); +const t1_1 = require("./t1"); exports.v = t1_1.v1; exports.f = t1_1.f1; exports.C = t1_1.C1; diff --git a/tests/baselines/reference/exportsAndImports4-es6.js b/tests/baselines/reference/exportsAndImports4-es6.js index 39c6583e935..8a8d4f81225 100644 --- a/tests/baselines/reference/exportsAndImports4-es6.js +++ b/tests/baselines/reference/exportsAndImports4-es6.js @@ -45,24 +45,24 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = "hello"; //// [t3.js] "use strict"; -var a = require("./t1"); +const a = require("./t1"); exports.a = a; a.default; -var t1_1 = require("./t1"); +const t1_1 = require("./t1"); exports.b = t1_1.default; t1_1.default; -var c = require("./t1"); +const c = require("./t1"); exports.c = c; c.default; -var t1_2 = require("./t1"); +const t1_2 = require("./t1"); exports.d = t1_2.default; t1_2.default; -var t1_3 = require("./t1"), e2 = t1_3; +const t1_3 = require("./t1"), e2 = t1_3; exports.e1 = t1_3.default; exports.e2 = e2; t1_3.default; e2.default; -var t1_4 = require("./t1"); +const t1_4 = require("./t1"); exports.f1 = t1_4.default; exports.f2 = t1_4.default; t1_4.default; diff --git a/tests/baselines/reference/shorthandPropertyAssignmentInES6Module.js b/tests/baselines/reference/shorthandPropertyAssignmentInES6Module.js index cab16b96bc3..d52622dffc7 100644 --- a/tests/baselines/reference/shorthandPropertyAssignmentInES6Module.js +++ b/tests/baselines/reference/shorthandPropertyAssignmentInES6Module.js @@ -20,8 +20,8 @@ use(foo); exports.x = 1; //// [test.js] "use strict"; -var existingModule_1 = require('./existingModule'); -var missingModule_1 = require('./missingModule'); +const existingModule_1 = require('./existingModule'); +const missingModule_1 = require('./missingModule'); const test = { x: existingModule_1.x, foo: missingModule_1.foo }; use(existingModule_1.x); use(missingModule_1.foo); From 88676d680fd8a887b0877b9cb8babf49fd787640 Mon Sep 17 00:00:00 2001 From: york yao Date: Mon, 25 Jan 2016 07:50:22 +0800 Subject: [PATCH 28/34] a better way since languageVersion is a number --- src/compiler/emitter.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index dbde9c14153..f6e70738071 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -6108,7 +6108,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge // import x = require("foo") // import * as x from "foo" if (!isExportedImport) { - if (languageVersion !== ScriptTarget.ES6) { + if (languageVersion <= ScriptTarget.ES5) { write("var "); } else { @@ -6126,7 +6126,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge // import d, { x, y } from "foo" const isNakedImport = SyntaxKind.ImportDeclaration && !(node).importClause; if (!isNakedImport) { - if (languageVersion !== ScriptTarget.ES6) { + if (languageVersion <= ScriptTarget.ES5) { write("var "); } else { @@ -6158,7 +6158,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge } else if (namespaceDeclaration && isDefaultImport(node)) { // import d, * as x from "foo" - if (languageVersion !== ScriptTarget.ES6) { + if (languageVersion <= ScriptTarget.ES5) { write("var "); } else { From 700af6a2ce24f7351f6aad68870a8371e6a4d258 Mon Sep 17 00:00:00 2001 From: Paul van Brenk Date: Sun, 24 Jan 2016 16:08:45 -0800 Subject: [PATCH 29/34] Fix up todo in jsdoccomment template code. --- src/services/services.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 0fae1c0aa45..28f7f848835 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -7179,8 +7179,7 @@ namespace ts { const indentationStr = sourceFile.text.substr(lineStart, posLineAndChar.character); - // TODO: call a helper method instead once PR #4133 gets merged in. - const newLine = host.getNewLine ? host.getNewLine() : "\r\n"; + const newLine = getNewLineOrDefaultFromHost(host); let docParams = ""; for (let i = 0, numParams = parameters.length; i < numParams; i++) { From 72c3bb6930ca0aa7359079141ffa9976122f00f2 Mon Sep 17 00:00:00 2001 From: york yao Date: Mon, 25 Jan 2016 10:48:23 +0800 Subject: [PATCH 30/34] extract a helper method --- src/compiler/emitter.ts | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index f6e70738071..fac17cd633c 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -6096,6 +6096,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge } } + function emitVar() { + if (languageVersion <= ScriptTarget.ES5) { + write("var "); + } + else { + write("const "); + } + } + function emitExternalImportDeclaration(node: ImportDeclaration | ImportEqualsDeclaration) { if (contains(externalImports, node)) { const isExportedImport = node.kind === SyntaxKind.ImportEqualsDeclaration && (node.flags & NodeFlags.Export) !== 0; @@ -6108,12 +6117,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge // import x = require("foo") // import * as x from "foo" if (!isExportedImport) { - if (languageVersion <= ScriptTarget.ES5) { - write("var "); - } - else { - write("const "); - } + emitVar(); }; emitModuleMemberName(namespaceDeclaration); write(" = "); @@ -6126,12 +6130,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge // import d, { x, y } from "foo" const isNakedImport = SyntaxKind.ImportDeclaration && !(node).importClause; if (!isNakedImport) { - if (languageVersion <= ScriptTarget.ES5) { - write("var "); - } - else { - write("const "); - } + emitVar(); write(getGeneratedNameForNode(node)); write(" = "); } @@ -6158,12 +6157,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge } else if (namespaceDeclaration && isDefaultImport(node)) { // import d, * as x from "foo" - if (languageVersion <= ScriptTarget.ES5) { - write("var "); - } - else { - write("const "); - } + emitVar(); emitModuleMemberName(namespaceDeclaration); write(" = "); write(getGeneratedNameForNode(node)); From d06d66cf5d95785c84b99944c63f9f05fa21a8ef Mon Sep 17 00:00:00 2001 From: york yao Date: Mon, 25 Jan 2016 13:35:12 +0800 Subject: [PATCH 31/34] use a local string rather than a function --- src/compiler/emitter.ts | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index fac17cd633c..8fed6ee42f9 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -6096,19 +6096,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge } } - function emitVar() { - if (languageVersion <= ScriptTarget.ES5) { - write("var "); - } - else { - write("const "); - } - } - function emitExternalImportDeclaration(node: ImportDeclaration | ImportEqualsDeclaration) { if (contains(externalImports, node)) { const isExportedImport = node.kind === SyntaxKind.ImportEqualsDeclaration && (node.flags & NodeFlags.Export) !== 0; const namespaceDeclaration = getNamespaceDeclarationNode(node); + const varOrConst = (languageVersion <= ScriptTarget.ES5) ? "var " : "const "; if (modulekind !== ModuleKind.AMD) { emitLeadingComments(node); @@ -6117,7 +6109,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge // import x = require("foo") // import * as x from "foo" if (!isExportedImport) { - emitVar(); + write(varOrConst); }; emitModuleMemberName(namespaceDeclaration); write(" = "); @@ -6130,7 +6122,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge // import d, { x, y } from "foo" const isNakedImport = SyntaxKind.ImportDeclaration && !(node).importClause; if (!isNakedImport) { - emitVar(); + write(varOrConst); write(getGeneratedNameForNode(node)); write(" = "); } @@ -6157,7 +6149,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge } else if (namespaceDeclaration && isDefaultImport(node)) { // import d, * as x from "foo" - emitVar(); + write(varOrConst); emitModuleMemberName(namespaceDeclaration); write(" = "); write(getGeneratedNameForNode(node)); From bfd6ca04af5fb79815cf9c76a69fb1256a37183e Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Mon, 25 Jan 2016 13:25:22 -0800 Subject: [PATCH 32/34] baseline-accept --- .../jsFileCompilationTypeAssertions.errors.txt | 9 ++++++--- .../getJavaScriptSemanticDiagnostics20.ts | 16 ---------------- 2 files changed, 6 insertions(+), 19 deletions(-) delete mode 100644 tests/cases/fourslash/getJavaScriptSemanticDiagnostics20.ts diff --git a/tests/baselines/reference/jsFileCompilationTypeAssertions.errors.txt b/tests/baselines/reference/jsFileCompilationTypeAssertions.errors.txt index e73ee46fb89..662eea4d405 100644 --- a/tests/baselines/reference/jsFileCompilationTypeAssertions.errors.txt +++ b/tests/baselines/reference/jsFileCompilationTypeAssertions.errors.txt @@ -1,9 +1,12 @@ error TS5055: Cannot write file 'tests/cases/compiler/a.js' because it would overwrite input file. -tests/cases/compiler/a.js(1,10): error TS8016: 'type assertion expressions' can only be used in a .ts file. +tests/cases/compiler/a.js(1,10): error TS17008: JSX element 'string' has no corresponding closing tag. +tests/cases/compiler/a.js(1,27): error TS1005: 'undefined; ~~~~~~ -!!! error TS8016: 'type assertion expressions' can only be used in a .ts file. \ No newline at end of file +!!! error TS17008: JSX element 'string' has no corresponding closing tag. + +!!! error TS1005: ' - -// @allowJs: true -// @Filename: a.js -//// var v = undefined; - -verify.getSyntacticDiagnostics(`[]`); -verify.getSemanticDiagnostics(`[ - { - "message": "'type assertion expressions' can only be used in a .ts file.", - "start": 9, - "length": 6, - "category": "error", - "code": 8016 - } -]`); \ No newline at end of file From c38021ffb8db7fdd081823d603cdf5af8da606e7 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Mon, 25 Jan 2016 13:38:00 -0800 Subject: [PATCH 33/34] Lint --- src/compiler/parser.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 16196e277dc..09df49d748c 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -546,7 +546,7 @@ namespace ts { function getLanguageVariant(fileName: string) { // .tsx and .jsx files are treated as jsx language variant. - return fileExtensionIs(fileName, ".tsx") || fileExtensionIs(fileName, ".jsx") || fileExtensionIs(fileName, '.js') ? LanguageVariant.JSX : LanguageVariant.Standard; + return fileExtensionIs(fileName, ".tsx") || fileExtensionIs(fileName, ".jsx") || fileExtensionIs(fileName, ".js") ? LanguageVariant.JSX : LanguageVariant.Standard; } function initializeState(fileName: string, _sourceText: string, languageVersion: ScriptTarget, isJavaScriptFile: boolean, _syntaxCursor: IncrementalParser.SyntaxCursor) { From add91052bb8dbf011b7170b03dca73d211bd210b Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 25 Jan 2016 17:08:15 -0800 Subject: [PATCH 34/34] Update version --- package.json | 2 +- src/compiler/program.ts | 2 +- src/services/shims.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 261cdfa64b7..cc74bf2c27c 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "typescript", "author": "Microsoft Corp.", "homepage": "http://typescriptlang.org/", - "version": "1.8.0", + "version": "1.9.0", "license": "Apache-2.0", "description": "TypeScript is a language for application scale JavaScript development", "keywords": [ diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 398ce27ef48..3fed8dcb596 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -12,7 +12,7 @@ namespace ts { const emptyArray: any[] = []; - export const version = "1.8.0"; + export const version = "1.9.0"; export function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean): string { let fileName = "tsconfig.json"; diff --git a/src/services/shims.ts b/src/services/shims.ts index 9ca3f19244d..e836eeed3e0 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -1057,6 +1057,6 @@ namespace TypeScript.Services { // TODO: it should be moved into a namespace though. /* @internal */ -const toolsVersion = "1.8"; +const toolsVersion = "1.9"; /* tslint:enable:no-unused-variable */ \ No newline at end of file