Commit Graph

854 Commits

Author SHA1 Message Date
Anders Hejlsberg
cbecae3cf3 Merge pull request #1657 from Microsoft/unionTypeGuards
Improved union type guards
2015-01-13 11:59:54 -08:00
Anders Hejlsberg
59e266de02 Improved handing of union types in type guards 2015-01-12 14:51:20 -08:00
Vladimir Matveev
c25f3eb9a3 addressed CR feedback 2015-01-12 11:31:54 -08:00
Vladimir Matveev
ecac4a519d disallow incorrect literal property names in indexed access for const enums 2015-01-12 10:58:21 -08:00
Anders Hejlsberg
40dc1341ab Merge pull request #1621 from Microsoft/narrowingOfAny
Type guard narrows type any in a primitive type check
2015-01-08 15:57:15 -08:00
Anders Hejlsberg
968a56924f Type guard narrows type any in a primitive type check 2015-01-08 14:27:39 -08:00
Daniel Rosenwasser
7b11621750 Merge pull request #1571 from Arnavion/1570-template-strings
Don't emit an empty template head literal if there's a template span with a non-empty literal.
2015-01-08 12:17:17 -08:00
Vladimir Matveev
4daa107cb4 Merge pull request #1614 from Microsoft/type_parameters_visibility
consider type parameters always visible
2015-01-07 12:41:47 -08:00
Daniel Rosenwasser
f32683d231 Merge pull request #1529 from Microsoft/uninstantiatedModulesBeforeClasses
Allow uninstantiated modules before clodules
2015-01-07 12:40:50 -08:00
Vladimir Matveev
01218f86ff consider type parameters always visible 2015-01-06 17:55:54 -08:00
Arnavion
d07151f87c Update tests and baselines. 2015-01-06 15:28:06 -08:00
Arnavion
4dfb0cc3d8 Update tests and baselines. 2015-01-06 02:42:22 -08:00
Jason Freeman
7459c87265 Merge branch 'release-1.4'
Conflicts:
	bin/lib.core.es6.d.ts
	bin/lib.es6.d.ts
	bin/tsc.js
	bin/typescript.d.ts
	bin/typescriptServices.d.ts
	bin/typescriptServices.js
	bin/typescriptServices_internal.d.ts
	bin/typescript_internal.d.ts
2015-01-05 15:08:17 -08:00
Cyrus Najmabadi
a1d04c3c65 Merge branch 'master' into mergeMarkers1 2014-12-28 18:58:47 -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
4aa37691a1 Fixed issue where the second type's signature having type parameters would not cause an error. 2014-12-18 16:45:29 -08:00
Daniel Rosenwasser
50d0f9b719 Added tests/baselines. 2014-12-18 16:45:26 -08:00
Cyrus Najmabadi
67b2f13cce Merge branch 'master' into layering
Conflicts:
	src/compiler/parser.ts
2014-12-18 00:39:56 -08:00
Daniel Rosenwasser
46cd90daf0 Added test, modified test, updated baselines. 2014-12-17 17:05:05 -08:00
Daniel Rosenwasser
fac5201765 Only error on non-ambient instantiated modules preceding clodules. 2014-12-17 17:00:42 -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
ca5d243ca7 Added test from original issue. 2014-12-17 15:49:00 -08:00
Cyrus Najmabadi
b37b98138d Merge branch 'master' into layering
Conflicts:
	src/compiler/checker.ts
	src/compiler/utilities.ts
2014-12-17 15:35:30 -08:00
Jason Freeman
29dfa3d6c0 Add module emit test 2014-12-17 14:33:32 -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
Anders Hejlsberg
a667959b1f Accepting new baselines 2014-12-17 11:50:03 -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
Cyrus Najmabadi
99a189936f Remove last vestiges of the grammar checker from the parser now that it has been entirely moved to the TypeChecker. 2014-12-16 19:59:16 -08:00
Yui T
9c9bd34352 Address code review 2014-12-16 19:49:40 -08:00
Yui T
d7f607234a COMPLETE migrating grammar checking; No more errors 2014-12-16 19:30:08 -08:00
Yui T
fdfd8d4863 Cleaning up migrating grammar checking 2014-12-16 19:11:07 -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
Yui T
8dc9f751a3 Complete grammar checking migration; there are still errors which will be fixed once pull master into the branch 2014-12-16 17:32:15 -08:00
Cyrus Najmabadi
f1a2e41a8a Sort diagnostics in our baseline output.
This was we don't get noisy baselines just because a different phase of the compiler reported
the diagnostic.

This helps with Yui's refactoring work to move grammar checks into the type checker.
2014-12-16 15:56:56 -08:00
Jason Freeman
ab33a65d30 Fix issue #1503 with modules and imports sharing a name 2014-12-16 14:59:21 -08:00
Yui T
a3e8b6c6d7 Move grammar checking: interfaceDeclaration-remove it from checkModifiers in parser; there are still errors from incomplete grammar migration 2014-12-16 13:47:57 -08:00
Yui T
406576f1fc Move grammar checking: propertyDeclaration, propertySignature; there are still errors from incomplete grammar migration 2014-12-16 13:36:00 -08:00
Yui T
c525877aaa Move grammar checking: moduleDeclaration; there are still errors from incomplete grammar migration 2014-12-16 13:35:31 -08:00
Yui T
003515655e Move grammar checking: methodDeclaration; there are still erros from incomplete grammar migration 2014-12-16 12:51:42 -08:00
Yui T
7a4d8cd8ee Move grammar checking: setAccessor, getAccessor; there are still erros from incomplete grammar migration 2014-12-16 12:25:05 -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
Yui T
694771b2d7 Move grammar checking: functionDeclaration; there are still errors from incomplet grammar migration 2014-12-15 23:05:29 -08:00
Yui T
25a6302b48 Move grammar checking: forStatement 2014-12-15 18:39:44 -08:00
Yui T
010745c371 Move grammar checking: forInStatement; there are still errors from incomplete migration 2014-12-15 18:28:24 -08:00