Skip to content

Commit 088e586

Browse files
Merge branch 'master' into newCompilerLS
Conflicts: src/services/services.ts
2 parents 474cf0d + 2f96374 commit 088e586

File tree

15 files changed

+73
-32
lines changed

15 files changed

+73
-32
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,4 @@ tests/*.d.ts
3535
*.config
3636
scripts/debug.bat
3737
scripts/run.bat
38+
coverage/

src/compiler/checker.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ module ts {
5858

5959
var stringLiteralTypes: Map<StringLiteralType> = {};
6060

61-
var fullTypeCheck = false;
6261
var emitExtends = false;
6362

6463
var mergedSymbols: Symbol[] = [];
@@ -4356,7 +4355,7 @@ module ts {
43564355
}
43574356
}
43584357
}
4359-
if (fullTypeCheck && !(links.flags & NodeCheckFlags.TypeChecked)) {
4358+
if (!(links.flags & NodeCheckFlags.TypeChecked)) {
43604359
checkSignatureDeclaration(node);
43614360
if (node.type) {
43624361
checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type));
@@ -6254,7 +6253,6 @@ module ts {
62546253
function checkSourceFile(node: SourceFile) {
62556254
var links = getNodeLinks(node);
62566255
if (!(links.flags & NodeCheckFlags.TypeChecked)) {
6257-
fullTypeCheck = true;
62586256
emitExtends = false;
62596257
potentialThisCollisions.length = 0;
62606258
forEach(node.statements, checkSourceElement);
@@ -6271,7 +6269,6 @@ module ts {
62716269
}
62726270
if (emitExtends) links.flags |= NodeCheckFlags.EmitExtends;
62736271
links.flags |= NodeCheckFlags.TypeChecked;
6274-
fullTypeCheck = false;
62756272
}
62766273
}
62776274

src/harness/fourslash.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1903,7 +1903,7 @@ module FourSlash {
19031903
files[Harness.Compiler.defaultLibFileName] = Harness.Compiler.defaultLibSourceFile;
19041904

19051905
var host = Harness.Compiler.createCompilerHost(files, (fn, contents) => result = contents);
1906-
var program = ts.createProgram([fileName, fourslashFilename], {}, host);
1906+
var program = ts.createProgram([fourslashFilename, fileName], { out: "fourslashTestOutput.js" }, host);
19071907
var checker = ts.createTypeChecker(program);
19081908
checker.checkProgram();
19091909

src/services/compiler/precompile.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ module TypeScript {
4949
return isNoDefaultLibRegex.exec(comment);
5050
}
5151

52-
export var tripleSlashReferenceRegExp = /^(\/\/\/\s*<reference\s+path=)('|")(.+?)\2\s*(static=('|")(.+?)\2\s*)*\/>/;
52+
export var tripleSlashReferenceRegExp = /^(\/\/\/\s*<reference\s+path=)('|")(.+?)\2\s*(static=('|")(.+?)\5\s*)*\/>/;
5353

5454
function getFileReferenceFromReferencePath(fileName: string, text: ISimpleText, position: number, comment: string, diagnostics: Diagnostic[]): IFileReference {
5555
// First, just see if they've written: /// <reference\s+

src/services/outliningElementsCollector.ts

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ module ts {
3636
export function collectElements(sourceFile: SourceFile): OutliningSpan[] {
3737
var elements: OutliningSpan[] = [];
3838

39-
function addOutlineRange(node: Node, startElement: Node, endElement: Node) {
40-
if (node && startElement && endElement) {
39+
function addOutlineRange(hintSpanNode: Node, startElement: Node, endElement: Node) {
40+
if (hintSpanNode && startElement && endElement) {
4141
var span: OutliningSpan = {
4242
textSpan: TypeScript.TextSpan.fromBounds(startElement.pos, endElement.end),
43-
hintSpan: TypeScript.TextSpan.fromBounds(node.getStart(), node.end),
43+
hintSpan: TypeScript.TextSpan.fromBounds(hintSpanNode.getStart(), hintSpanNode.end),
4444
bannerText: "...",
4545
autoCollapse: false
4646
};
@@ -49,33 +49,31 @@ module ts {
4949
}
5050

5151
var depth = 0;
52-
var maxDepth = 10;
52+
var maxDepth = 20;
5353
function walk(n: Node): void {
54-
if (depth >= maxDepth) {
54+
if (depth > maxDepth) {
5555
return;
5656
}
5757
switch (n.kind) {
58+
case SyntaxKind.Block:
59+
case SyntaxKind.FunctionBlock:
60+
case SyntaxKind.ModuleBlock:
61+
case SyntaxKind.TryBlock:
62+
case SyntaxKind.TryBlock:
63+
case SyntaxKind.CatchBlock:
64+
case SyntaxKind.FinallyBlock:
65+
var openBrace = forEach(n.getChildren(), c => c.kind === SyntaxKind.OpenBraceToken && c);
66+
var closeBrace = forEach(n.getChildren(), c => c.kind === SyntaxKind.CloseBraceToken && c);
67+
addOutlineRange(n.parent, openBrace, closeBrace);
68+
break;
5869
case SyntaxKind.ClassDeclaration:
5970
case SyntaxKind.InterfaceDeclaration:
60-
case SyntaxKind.ModuleDeclaration:
6171
case SyntaxKind.EnumDeclaration:
6272
case SyntaxKind.ObjectLiteral:
6373
var openBrace = forEach(n.getChildren(), c => c.kind === SyntaxKind.OpenBraceToken && c);
6474
var closeBrace = forEach(n.getChildren(), c => c.kind === SyntaxKind.CloseBraceToken && c);
6575
addOutlineRange(n, openBrace, closeBrace);
6676
break;
67-
case SyntaxKind.Constructor:
68-
case SyntaxKind.FunctionDeclaration:
69-
case SyntaxKind.Method:
70-
case SyntaxKind.GetAccessor:
71-
case SyntaxKind.SetAccessor:
72-
var body = (<FunctionDeclaration>n).body;
73-
if (body) {
74-
var openBrace = forEach(body.getChildren(), c => c.kind === SyntaxKind.OpenBraceToken && c);
75-
var closeBrace = forEach(body.getChildren(), c => c.kind === SyntaxKind.CloseBraceToken && c);
76-
addOutlineRange(n, openBrace, closeBrace);
77-
}
78-
break;
7977
}
8078
depth++;
8179
forEachChild(n, walk);

src/services/services.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -420,10 +420,10 @@ module ts {
420420
? TypeScript.Parser.parse(this.filename, text, this.languageVersion, TypeScript.isDTSFile(this.filename))
421421
: TypeScript.IncrementalParser.parse(oldSyntaxTree, textChangeRange, text);
422422

423-
return SourceFileObject.createSourceFileObject(this.languageVersion, this.filename, scriptSnapshot, version, isOpen, newSyntaxTree);
423+
return SourceFileObject.createSourceFileObject(this.filename, scriptSnapshot, this.languageVersion, version, isOpen, newSyntaxTree);
424424
}
425425

426-
public static createSourceFileObject(languageVersion: ScriptTarget, filename: string, scriptSnapshot: TypeScript.IScriptSnapshot, version: string, isOpen: boolean, syntaxTree: TypeScript.SyntaxTree) {
426+
public static createSourceFileObject(filename: string, scriptSnapshot: TypeScript.IScriptSnapshot, languageVersion: ScriptTarget, version: string, isOpen: boolean, syntaxTree?: TypeScript.SyntaxTree) {
427427
var newSourceFile = <SourceFileObject><any>createSourceFile(filename, scriptSnapshot.getText(0, scriptSnapshot.getLength()), languageVersion, version, isOpen);
428428
newSourceFile.scriptSnapshot = scriptSnapshot;
429429
newSourceFile.syntaxTree = syntaxTree;
@@ -1068,7 +1068,7 @@ module ts {
10681068
var nextSyntaxTree = TypeScript.IncrementalParser.parse(
10691069
previousSyntaxTree, editRange, TypeScript.SimpleText.fromScriptSnapshot(scriptSnapshot));
10701070

1071-
this.ensureInvariants(filename, editRange, nextSyntaxTree, this.getCurrentScriptSnapshot(filename), scriptSnapshot);
1071+
this.ensureInvariants(filename, editRange, nextSyntaxTree, previousScriptSnapshot, scriptSnapshot);
10721072

10731073
return nextSyntaxTree;
10741074
}
@@ -1137,7 +1137,7 @@ module ts {
11371137
}
11381138

11391139
function createSourceFileFromScriptSnapshot(filename: string, scriptSnapshot: TypeScript.IScriptSnapshot, settings: CompilerOptions, version: string, isOpen: boolean) {
1140-
return createSourceFile(filename, scriptSnapshot.getText(0, scriptSnapshot.getLength()), settings.target, version, isOpen);
1140+
return SourceFileObject.createSourceFileObject(filename, scriptSnapshot, settings.target, version, isOpen);
11411141
}
11421142

11431143
export function createDocumentRegistry(): DocumentRegistry {

src/services/shims.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,7 @@ module ts {
729729
var items = this.languageService.getOutliningRegions(fileName);
730730
// return just the part of data that language service v2 can understand
731731
// language service v2 will use the entire OutliningSpan
732-
var spans = forEach(items, i => i.textSpan);
732+
var spans = map(items, i => i.textSpan);
733733
return spans;
734734
});
735735
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"scenario": "Reference-path-static",
3+
"projectRoot": "tests/cases/projects/reference-path-static",
4+
"inputFiles": [
5+
"test.ts"
6+
],
7+
"resolvedInputFiles": [
8+
"test.ts",
9+
"lib.ts",
10+
"lib.d.ts"
11+
],
12+
"emittedFiles": [
13+
"lib.js",
14+
"test.js"
15+
]
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"scenario": "Reference-path-static",
3+
"projectRoot": "tests/cases/projects/reference-path-static",
4+
"inputFiles": [
5+
"test.ts"
6+
],
7+
"resolvedInputFiles": [
8+
"test.ts",
9+
"lib.ts",
10+
"lib.d.ts"
11+
],
12+
"emittedFiles": [
13+
"lib.js",
14+
"test.js"
15+
]
16+
}

tests/cases/fourslash/getOutliningSpans.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@
6363
////}|] /* even more */
6464
////
6565
////// object literals
66-
////var x = [|{
66+
////var x =[|{
6767
//// a:1,
6868
//// b:2,
69-
//// get foo() [|{
69+
//// get foo()[| {
7070
//// return 1;
7171
//// }|]
7272
////}|]

tests/cases/fourslash/outliningForNonCompleteInterfaceDeclaration.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
////interface I[||]
44

55
// should not crash
6-
verify.outliningSpansInCurrentFile(test.ranges());
6+
verify.outliningSpansInCurrentFile([]);
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"scenario": "Reference-path-static",
3+
"projectRoot": "tests/cases/projects/reference-path-static",
4+
"inputFiles": [
5+
"test.ts"
6+
]
7+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module Lib {
2+
export class LibType {}
3+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/// <reference path="lib.ts" static='true' />
2+
3+
var libType: Lib.LibType;

0 commit comments

Comments
 (0)