Commit Graph

1517 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
Vladimir Matveev
8256ddf756 Merge pull request #1647 from Microsoft/badPropNamesInConstEnums
disallow incorrect literal property names in indexed access for const en...
2015-01-13 11:33:30 -08:00
Mohamed Hegazy
a99b958484 Manual port of fixe for #1593 from release-1.4 2015-01-13 09:30: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
Lorant Pinter
47b8deb382 Show --noImplicitAny as an option to throw errors, not warnings
Fixes #1632
2015-01-11 11:14:06 +01:00
Anders Hejlsberg
a8cf58939b Adding comment 2015-01-09 06:52:24 -08:00
Anders Hejlsberg
bdfb655d66 Renaming helpers and cleaning up logic 2015-01-08 18:46:48 -08:00
Anders Hejlsberg
78bb71f837 Optimizing forEachChild function to not create closures 2015-01-08 16:43:37 -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
Vladimir Matveev
55628109c8 Merge pull request #1586 from Microsoft/copymap
extract map copying logic to a separate function
2015-01-08 14:22:02 -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
Daniel Rosenwasser
df4b3d2d37 Merge pull request #1547 from Microsoft/moveEmitHost
Moved EmitHost to utilities.ts so that it can be edited alone, and to fix resulting declaration file
2015-01-07 13:13:49 -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
Daniel Rosenwasser
06d65c797d Moved EmitHost to utilities.ts 2015-01-07 12:37:46 -08:00
Vladimir Matveev
01218f86ff consider type parameters always visible 2015-01-06 17:55:54 -08:00
Arnavion
b442d14e44 Don't emit an empty template head literal if there's a template span with a non-empty literal.
Fixes #1570
2015-01-06 15:28:06 -08:00
Arnavion
33534be268 Give MinusToken the same precedence as PlusToken for template expressions.
Fixes #1577
2015-01-06 02:42:02 -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
Vladimir Matveev
06258b8c10 added parameter names to 'copymap' call site 2015-01-05 11:48:46 -08:00
Vladimir Matveev
363587163b extract map copying logic to a separate function 2015-01-02 12:14:02 -08:00
Cyrus Najmabadi
12cb284e5d CR feedback. 2014-12-29 16:23:11 -08:00
Cyrus Najmabadi
a1d04c3c65 Merge branch 'master' into mergeMarkers1 2014-12-28 18:58:47 -08:00
Daniel Rosenwasser
8aefbe9a86 Removed newline. 2014-12-22 14:02:40 -08:00
Daniel Rosenwasser
d907f99693 Moved EmitHost to types.ts so that utilities can be edited as a standalone file through dependency resolution. 2014-12-22 13:58:14 -08:00
Daniel Rosenwasser
52ef460002 Undid comment change that made things more misleading. 2014-12-19 15:30:34 -08:00
Cyrus Najmabadi
ff9f59c913 Remove unused constants. 2014-12-18 19:43:36 -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
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
Cyrus Najmabadi
67b2f13cce Merge branch 'master' into layering
Conflicts:
	src/compiler/parser.ts
2014-12-18 00:39:56 -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
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
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
ae0caed8f7 Merge pull request #1473 from Microsoft/parsePrimaryExpression
Switch order of switch cases in parsePrimaryExpression
2014-12-17 14:50:16 -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
8048163714 CR feedback. 2014-12-17 12:36:53 -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
f459951431 Merge branch 'diagnostics' into sourceFileUpdate
Conflicts:
	src/compiler/parser.ts
2014-12-16 23:48:00 -08:00
Cyrus Najmabadi
5df0ca529e Merge branch 'master' into layering
Conflicts:
	src/compiler/checker.ts
	src/compiler/parser.ts
2014-12-16 23:15:57 -08:00
Cyrus Najmabadi
2748a5b163 Remove 'grammarDiagnostics' from SourceFile. 2014-12-16 23:00:14 -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
880e5c50d7 Don't allow -noEmit with -declaration 2014-12-16 20:25:20 -08:00
Arnavion
df6aa85d4f Don't allow -noEmit with -out or -outDir 2014-12-16 20:25:20 -08:00
Arnavion
cd6eb180c6 Don't emit outputs when -noEmit is specified. 2014-12-16 20:25:19 -08:00
Arnavion
dbe5cd0459 Add -noEmit compiler flag. 2014-12-16 20:25:19 -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