Commit Graph

1052 Commits

Author SHA1 Message Date
Cyrus Najmabadi
a1d04c3c65 Merge branch 'master' into mergeMarkers1 2014-12-28 18:58:47 -08:00
Cyrus Najmabadi
0707350c7b Update conflict marker formatting test. We now no longer format the second branch of hte merge. 2014-12-19 11:33:45 -08:00
Cyrus Najmabadi
a6ea497ff1 Classify the '=' sign in variable/parameter/property as if it was an operator. 2014-12-18 19:38:19 -08:00
Cyrus Najmabadi
48bef4698b Provide better error recovery when we encounter merge markers in the source.
Previously we would just treat each merge marker as trivia and then continue
scanning and parsing like normal.  This worked well in some scenarios, but
fell down in others like:

```
class C {
    public foo() {
<<<<<<< HEAD
        this.bar();
    }
=======
        this.baz();
    }
>>>>>>> Branch

    public bar() { }
}
```

The problem stems from the previous approach trying to incorporate both branches of the merge into
the final tree.  In a case like this, that approach breaks down entirely.  The the parser ends up
seeing the close curly in both included sections, and it considers the class finished.  Then, it
starts erroring when it encounters "public bar()".

The fix is to only incorporate one of these sections into the tree.  Specifically, we only include
the first section.  The second sectoin is treated like trivia and does not affect the parse at all.
To make the experience more pleasant we do *lexically* classify the second section.  That way it
does not appear as just plain black text in the editor.  Instead, it will have appropriate lexicla
classifications for keywords, literals, comments, operators, punctuation, etc.  However, any syntactic
or semantic feature will not work in the second block due to this being trivia as far as any feature
is concerned.

This experience is still much better than what we had originally (where merge markers would absolutely)
destroy the parse tree.  And it is better than what we checked in last week, which could easily create
a borked tree for many types of merges.

Now, almost all merges should still leave the tree in good shape.  All LS features will work in the
first section, and lexical classification will work in the second.
2014-12-18 19:18:13 -08:00
Cyrus Najmabadi
828b33aae7 Add test demonstrating the problem with conflict markers. 2014-12-18 17:23:34 -08:00
Daniel Rosenwasser
50d0f9b719 Added tests/baselines. 2014-12-18 16:45:26 -08:00
Daniel Rosenwasser
af9b56bdd9 Merge pull request #1528 from Microsoft/goToDefOnUnionMethod
Fix crash on go-to-def on union method
2014-12-18 12:11:05 -08:00
Daniel Rosenwasser
6fed3e2601 Merge pull request #1501 from Arnavion/no-emit
Add -noEmit compiler flag that skips the emit stage in ts.compile()
2014-12-17 18:00:33 -08:00
Anders Hejlsberg
b2a02fe9ef Merge pull request #1443 from Microsoft/improvedTypeInference
Make initial inferences from parameterless function expressions
2014-12-17 16:19:49 -08:00
Daniel Rosenwasser
b3ccb562fb Added test for goToDef on union types. 2014-12-17 15:11:43 -08:00
Daniel Rosenwasser
42babc52d3 Use 'definitionCountIs' in union property tests. 2014-12-17 15:11:40 -08:00
Daniel Rosenwasser
6c753496e7 Rename file. 2014-12-17 15:11:38 -08:00
Daniel Rosenwasser
7a1be3cc04 Added test using code from original issue. 2014-12-17 15:11:35 -08:00
Daniel Rosenwasser
af4d7d3ff4 Added goToDef count verification in fourslash facilities. 2014-12-17 15:11:31 -08:00
Daniel Rosenwasser
eaaf7ad468 Normalize a few fourslash line endings. 2014-12-17 15:11:29 -08:00
Cyrus Najmabadi
6a08c54f42 Merge branch 'master' into sourceFileUpdate
Conflicts:
	src/compiler/checker.ts
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/harness/fourslash.ts
2014-12-17 13:22:04 -08:00
Cyrus Najmabadi
4545549e07 Disable incremental by default before merging into master. 2014-12-17 12:41:08 -08:00
Anders Hejlsberg
766756b4b1 Merge branch 'master' into spreadAndRest
Conflicts:
	src/compiler/parser.ts
2014-12-17 11:49:45 -08:00
Cyrus Najmabadi
cd308e78ba Merge branch 'master' into sourceFileUpdate
Conflicts:
	src/compiler/checker.ts
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/parser.ts
	tests/baselines/reference/FunctionDeclaration5_es6.errors.txt
	tests/baselines/reference/VariableDeclaration2_es6.errors.txt
	tests/baselines/reference/VariableDeclaration4_es6.errors.txt
	tests/baselines/reference/anonymousModules.errors.txt
	tests/baselines/reference/callSignaturesWithParameterInitializers2.errors.txt
	tests/baselines/reference/conflictMarkerTrivia1.errors.txt
	tests/baselines/reference/dottedModuleName.errors.txt
	tests/baselines/reference/innerModExport1.errors.txt
	tests/baselines/reference/innerModExport2.errors.txt
	tests/baselines/reference/parserAccessors10.errors.txt
	tests/baselines/reference/parserComputedPropertyName5.errors.txt
	tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction1.errors.txt
	tests/baselines/reference/parserErrantEqualsGreaterThanAfterFunction2.errors.txt
	tests/baselines/reference/parserModifierOnStatementInBlock2.errors.txt
	tests/baselines/reference/parserSkippedTokens16.errors.txt
	tests/baselines/reference/privateIndexer2.errors.txt
2014-12-16 21:50:10 -08:00
Arnavion
cd6eb180c6 Don't emit outputs when -noEmit is specified. 2014-12-16 20:25:19 -08:00
Yui T
c2b03b6384 Address code review 2014-12-16 19:53:42 -08:00
Anders Hejlsberg
fab94d84e5 Merge branch 'master' into spreadAndRest
Conflicts:
	src/compiler/parser.ts
2014-12-16 18:09:21 -08:00
Yui T
9ab59a4964 Merge branch 'master' into refactorGrammarCheck
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/parser.ts
	src/compiler/types.ts
	tests/baselines/reference/YieldExpression8_es6.errors.txt
	tests/baselines/reference/ambientErrors.errors.txt
	tests/baselines/reference/giant.errors.txt
2014-12-16 17:38:40 -08:00
Cyrus Najmabadi
c9ee88e5c4 Adding incremental test. 2014-12-16 11:58:47 -08:00
Cyrus Najmabadi
8917e96663 Merge branch 'funcDeclsInBlocks' into sourceFileUpdate
Conflicts:
	src/compiler/parser.ts
	src/compiler/utilities.ts
2014-12-16 03:12:31 -08:00
Cyrus Najmabadi
6326b9d51f Merge branch 'master' into sourceFileUpdate 2014-12-16 02:59:05 -08:00
Cyrus Najmabadi
c7bb0a5ae6 Don't store variable statement flags on its variable declaration children. 2014-12-16 02:50:38 -08:00
Vladimir Matveev
59c73c5f34 Merge pull request #1466 from Microsoft/linked_imports
defer decision whether import used on the right side of import declarati...
2014-12-16 00:46:26 -08:00
Cyrus Najmabadi
41e59824fb Merge branch 'master' into funcDeclsInBlocks 2014-12-15 20:50:48 -08:00
Cyrus Najmabadi
14883cb18e Merge branch 'master' into typingHighFidelity 2014-12-14 23:46:05 -08:00
Yui T
1cc0d184bb Move grammar checking: shorthandPropertyAssignment; Add more parser test; there are still errors from incomplete migration 2014-12-14 19:14:02 -08:00
Cyrus Najmabadi
bd76ebd02b Enable incremental parsing by default.
Provide flag to disable incremental parsing if necessary.
2014-12-14 12:39:11 -08:00
Cyrus Najmabadi
3478099a85 Add incremental parsing LS test. 2014-12-14 12:30:02 -08:00
Cyrus Najmabadi
872df4dda4 Merge branch 'noDebuggerInTests' into sourceFileUpdate 2014-12-14 12:23:05 -08:00
Cyrus Najmabadi
b4a21686c1 Remove calls to "debugger;" in our fourslash tests. 2014-12-14 12:22:36 -08:00
Cyrus Najmabadi
e1e5243335 Merge branch 'typingHighFidelity' into sourceFileUpdate
Conflicts:
	tests/cases/unittests/incrementalParser.ts
2014-12-14 12:06:26 -08:00
Cyrus Najmabadi
0e01e48d0e Always run all fourslash tests in high fidelity typing mode.
We want to verify after every edit that our incremental data is correct.
2014-12-14 11:34:15 -08:00
Cyrus Najmabadi
f5d622f0c9 Move test helpers into the harness Utils module. 2014-12-14 10:57:34 -08:00
Anders Hejlsberg
3e436c5047 Adding new tests 2014-12-12 14:34:12 -08:00
Anders Hejlsberg
b416cbc599 Merge branch 'master' into spreadAndRest
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/parser.ts
2014-12-12 14:32:53 -08:00
Cyrus Najmabadi
ffdddd53af Merge branch 'master' into funcDeclsInBlocks
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/parser.ts
2014-12-12 14:05:09 -08:00
Vladimir Matveev
c24f75fd73 defer decision whether import used on the right side of import declaration should be considered referenced 2014-12-12 11:48:46 -08:00
Anders Hejlsberg
86a9c80ff8 Adding tests and accepting new baselines 2014-12-12 10:56:22 -08:00
Cyrus Najmabadi
d5c6636854 Parse function and variable declarations uniformly, whether they're at teh top level, or inside a method.
This is necessary for incremental parsing correctness, as the incremental parser
will attempt to reuse these types of nodes in both contexts, and we much ensure
it creates the same trees you would get if you were parsing normally.
2014-12-12 03:52:01 -08:00
Cyrus Najmabadi
8820ca0596 Change the error-bit to be a node-flag and not a parser context flag.
Do not reuse nodes with errors in them.  We need to reparse them to make
sure we produce the right errors the second time around.
2014-12-12 03:25:49 -08:00
Cyrus Najmabadi
60c62e5b6b Don't consume nodes during calls to isListElement. 2014-12-12 03:06:05 -08:00
Cyrus Najmabadi
9c0e4211bc Properly adjust nodes while walking down the tree. 2014-12-12 02:34:53 -08:00
Cyrus Najmabadi
2f833d5f97 Provide a way for tests to try out incremental parsing. 2014-12-12 02:21:45 -08:00
Cyrus Najmabadi
f218ce7684 Merge branch 'master' into sourceFileUpdate
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/parser.ts
	tests/baselines/reference/APISample_node_compile.js
	tests/baselines/reference/APISample_node_compile.types
	tests/baselines/reference/APISample_standalone_compile.js
	tests/baselines/reference/APISample_standalone_compile.types
2014-12-12 00:52:07 -08:00
Daniel Rosenwasser
854586e824 Merge branch 'release-1.4' into fixProcessDiagMessagesProbWith1.4Merge
Conflicts:
	tests/baselines/reference/APISample_node_compile.js
	tests/baselines/reference/APISample_node_compile.types
	tests/baselines/reference/APISample_standalone_compile.js
	tests/baselines/reference/APISample_standalone_compile.types
	tests/cases/compiler/APISample_node_compile.ts
	tests/cases/compiler/APISample_standalone_compile.ts
2014-12-12 00:09:23 -08:00