Commit Graph

480 Commits

Author SHA1 Message Date
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
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
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
Arnavion
cd6eb180c6 Don't emit outputs when -noEmit is specified. 2014-12-16 20:25:19 -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
c7bb0a5ae6 Don't store variable statement flags on its variable declaration children. 2014-12-16 02:50:38 -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
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
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
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
Cyrus Najmabadi
7df3a407c2 Make the compiler resilient to encountering merge conflict markers in a source code file. 2014-12-11 16:56:10 -08:00
Cyrus Najmabadi
76df92cc78 Merge branch 'master' into funcDeclsInBlocks 2014-12-11 14:59:03 -08:00
Cyrus Najmabadi
b692ea9b66 Remove TryBlock and FinallyBlock.
They break the rule that syntactically identical constructs use the same syntax kind.  This
prevents node reuse in incremental parsing.
2014-12-11 14:40:25 -08:00
Vladimir Matveev
997aadb902 Merge pull request #1437 from Microsoft/formatting_conditionals
conditionals are now introduce indentation scope
2014-12-10 23:28:54 -08:00
Vladimir Matveev
d69ba56ece added test for inherited indentation 2014-12-10 22:01:34 -08:00
Vladimir Matveev
10d08b816e do not indent leading comments that attached to tokens with errors 2014-12-10 15:08:26 -08:00
Vladimir Matveev
30ada4cffe conditionals are now introduce indentation scope 2014-12-10 14:03:14 -08:00
Anders Hejlsberg
bb70e9eb12 Merge pull request #1346 from Microsoft/destructuring
Destructuring
2014-12-09 11:39:23 -08:00
Anders Hejlsberg
7bc35b3ae0 Merge branch 'master' into destructuring
Conflicts:
	src/compiler/binder.ts
	src/compiler/checker.ts
	src/compiler/emitter.ts
	src/compiler/parser.ts
	src/services/services.ts
	tests/baselines/reference/parserCommaInTypeMemberList2.errors.txt
2014-12-09 11:26:43 -08:00
Vladimir Matveev
cd2016c48a Merge pull request #1416 from Microsoft/inherited_deltas
inherit delta from nodes on the same line
2014-12-09 10:46:41 -08:00
Vladimir Matveev
7ed4225413 inherit delta from nodes on the same line 2014-12-09 04:55:33 -08:00
Anders Hejlsberg
459dee0e84 Merge branch 'master' into destructuring
Move downlevel vs. ES6 emit branching into individual emit functions
2014-12-08 14:42:38 -08:00
Vladimir Matveev
929d359bdf fix formatting to add space after comma between arguments when arguments starts with open paren 2014-12-08 14:28:19 -08:00
Vladimir Matveev
f30bb7ec35 add classification for type aliases 2014-12-05 17:32:36 -08:00
Sheetal Nandi
e3320c2530 Merge pull request #1362 from Microsoft/contextSensitiveExpressions
Resolve the context sensitive expression containers before resolving node
2014-12-04 13:02:56 -08:00
Daniel Rosenwasser
6a882e7392 Merge pull request #1363 from Microsoft/noMoreExpandoBar
Fixed issue where missing identifiers pushed trivia into the navigation bar
2014-12-04 12:44:58 -08:00
Cyrus Najmabadi
c735ccc46d Merge branch 'master' into propertyAssignments 2014-12-03 19:33:33 -08:00
Anders Hejlsberg
816abb19e4 Merge branch 'master' into destructuring
Conflicts:
	src/compiler/checker.ts
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/emitter.ts
	src/compiler/parser.ts
	src/compiler/types.ts
	src/services/navigationBar.ts
	tests/baselines/reference/assignmentLHSIsValue.errors.txt
	tests/baselines/reference/objectTypesWithOptionalProperties.errors.txt
	tests/baselines/reference/parserErrorRecovery_ParameterList2.errors.txt
2014-12-03 16:43:01 -08:00
Daniel Rosenwasser
0e9561194b Added tests. 2014-12-03 15:05:38 -08:00
Daniel Rosenwasser
d4575572b6 parenetName -> parentName 2014-12-03 14:58:15 -08:00
Daniel Rosenwasser
dfad03a35c Normalized line endings for test. 2014-12-03 14:56:02 -08:00
Sheetal Nandi
1939c7f2cd Fix the getSymbolInfo and getTypeOfNode entry points to resolve the context sensitive information before resolving the actual node 2014-12-03 14:47:13 -08:00
Sheetal Nandi
c40e0f6738 Fixes the quickInfo when hovering over var inside the context sensitive expression
Handles #1165
2014-12-03 14:00:58 -08:00
Sheetal Nandi
1551c0a466 Merge pull request #889 from Microsoft/SymbolDisplayParkKindTests
Symbol display part kind test cases
2014-12-03 13:21:53 -08:00
Sheetal Nandi
c4f4e787cf Add test cases for external module reference of the alias 2014-12-03 12:41:32 -08:00
Cyrus Najmabadi
0900005438 Don't rewrite function property assignments in the AST. 2014-12-03 01:46:04 -08:00
Mohamed Hegazy
d9b3d21cba Merge branch 'master' into getOccurancesAssert 2014-12-02 20:16:50 -08:00