Commit Graph

35940 Commits

Author SHA1 Message Date
Cyrus Najmabadi 35644b3d47 Move from an array of function pointers to actual methods.
Conflicts:
	src/services/syntax/syntaxGenerator.ts
2014-11-04 22:40:36 -08:00
Daniel Rosenwasser e119c575e8 Classify keywords in type args in the absence of syntactic classification. 2014-11-04 17:30:37 -08:00
Anders Hejlsberg d8080a0b46 Merge pull request #1035 from Microsoft/improvedTypeInference
Improved type inference (fixes #1011)
2014-11-04 17:09:31 -08:00
Sheetal Nandi 9d31631fd7 Test cases of function infering return type of functions
if f is a contextually typed function expression (section 4.9.3), the inferred return type is the union type (section 3.3.4) of the types of the return statement expressions in the function body, ignoring return statements with no expressions.
Otherwise, the inferred return type is the first of the types of the return statement expressions in the function body that is a supertype (section 3.8.3) of each of the others, ignoring return statements with no expressions. A compile-time error occurs if no return statement expression has a type that is a supertype of each of the others.
2014-11-04 16:40:56 -08:00
Sheetal Nandi 40af15c8ff Array literal produces union type if the it is not contextually typed 2014-11-04 15:58:44 -08:00
Sheetal Nandi a5cea935af Tests for contextual index signature of union type
Let S be the set of types in U that has a string index signature. If S is not empty, U has a string index signature of a union type of the types of the string index signatures from each type in S.
Let S be the set of types in U that has a numeric index signature. If S is not empty, U has a numeric index signature of a union type of the types of the numeric index signatures from each type in S.
2014-11-04 15:33:32 -08:00
Daniel Rosenwasser 1508350cb8 Merge branch 'master' into taggedTemplates
Conflicts:
	tests/baselines/reference/taggedTemplateStringsWithIncompatibleTypedTags.errors.txt
2014-11-04 15:24:21 -08:00
Daniel Rosenwasser 56027663bf Initial work on overload resolution with tagged templates.
Currently type argument inference breaks hard when the first parameter of a tag has a generic type.
2014-11-04 15:05:05 -08:00
Sheetal Nandi c4e632746e Fix the logic in getting the contextual signature of union type as per spec
Fixes #1054
2014-11-04 14:49:15 -08:00
Sheetal Nandi c5b4051f3a Test cases for contextual typing of union type members 2014-11-04 13:33:43 -08:00
Sheetal Nandi 1ca9273f49 Identity of union type 2014-11-04 13:18:50 -08:00
Sheetal Nandi 16fc7a22e2 Tests for union type literals
A union type literal is written as a sequence of types separated by vertical bars.
UnionType:
PrimaryOrUnionType   |   PrimaryType
A union typle literal references a union type.
When function or constructor types are included in union types they must be enclosed in parentheses
2014-11-04 13:18:47 -08:00
Sheetal Nandi 24ebc750c0 Tests for Conditional operator can generate union type 2014-11-04 13:18:43 -08:00
Sheetal Nandi b66cd9b0fc Results of || operation produces union type 2014-11-04 13:18:40 -08:00
Sheetal Nandi 49b5b5ab99 Tests for union of index signatures:
•	If each type in U has a string index signature, U has a string index signature of a union type of the types of the string index signatures from each type in U.
•	If each type in U has a numeric index signature, U has a numeric index signature of a union type of the types of the numeric index signatures from each type in U.
2014-11-04 13:18:37 -08:00
Sheetal Nandi c2b2c306af Tests for union of construct signatures
If each type in U has construct signatures and the sets of construct signatures are identical ignoring return types, U has the same set of construct signatures, but with return types that are unions of the return types of the respective construct signatures from each type in U.
2014-11-04 13:18:34 -08:00
Sheetal Nandi 2b8342bd79 Tests for union of call signatures
If each type in U has call signatures and the sets of call signatures are identical ignoring return types, U has the same set of call signatures, but with return types that are unions of the return types of the respective call signatures from each type in U.
2014-11-04 13:18:30 -08:00
Sheetal Nandi 357bd87612 Tests for union members:
If each type in U has a property P, U has a property P of a union type of the types of P from each type in U.
2014-11-04 13:18:27 -08:00
Sheetal Nandi 1f3653b32e Tests for assignment compatibility of union types
•	A union type U is assignable to a type T if each type in U is assignable to T.
•	A type T is assignable to a union type U if T is assignable to any type in U.
2014-11-04 13:18:24 -08:00
Sheetal Nandi 703cd5d4cf Tests for checking if type S is subtype of union type
T is a union type and S is a subtype of at least one constituent type of T
2014-11-04 13:18:20 -08:00
Sheetal Nandi a1535533e7 Tests for source (S) of subtype is union type (U)
A union type U is a subtype of a type T if each type in U is a subtype of T
2014-11-04 13:18:17 -08:00
Sheetal Nandi 568049474e Tests to check equivalency of union types
A union type encompasses an unordered set of unrelated types (that is, types that aren’t subtypes of each other). The following rules govern union types:
•	A | B is equivalent to A if B is a subtype of A.
•	A | B is equivalent to B | A.
•	AB | C is equivalent to A | BC, where AB is A | B and BC is B | C.
2014-11-04 13:18:14 -08:00
Sheetal Nandi 7634f741d9 Conformance tests for array element type of tuple is union type of tuple element types 2014-11-04 13:18:11 -08:00
Vladimir Matveev 2b701963ee Merge pull request #1049 from Microsoft/const_enums
Convert majority of enums in compiler to const enums
2014-11-04 12:28:40 -08:00
vladima 9051bc9e57 use debug mode by defauls in local builds 2014-11-04 12:18:32 -08:00
vladima 95ec8c065f add test for const enum that is initialized with enum member defined above 2014-11-04 12:13:19 -08:00
vladima b3eb9c5e6c add 'emitReverseMapping' task to jakefile 2014-11-04 11:27:34 -08:00
vladima 9295a0e357 update LKG, always emit value as initializer for const enums when 'preserveConstEnums' is specified 2014-11-04 11:26:01 -08:00
CyrusNajmabadi 26b221151a Merge pull request #1051 from Microsoft/updatedNodes
Update syntax nodes.
2014-11-04 02:13:35 -08:00
Cyrus Najmabadi 419ee38c8a Update syntax nodes. 2014-11-04 01:37:59 -08:00
CyrusNajmabadi 47a3410324 Merge pull request #1050 from Microsoft/incrementalPerf2
More incremental perf tweaks.
2014-11-04 01:27:54 -08:00
Cyrus Najmabadi 12d3d8a741 Specialize findToken walk. 2014-11-04 01:20:00 -08:00
Cyrus Najmabadi c9edc5963e Micro optimize scanning 2014-11-04 01:19:46 -08:00
Cyrus Najmabadi 82dc827837 Use an array for getting the right childAt function. 2014-11-04 01:19:31 -08:00
Cyrus Najmabadi aa2509a08a Small micro optimizations to incremental parsing. 2014-11-04 01:19:19 -08:00
Cyrus Najmabadi 7c0c788886 Specialize update method for both nodes and tokens. 2014-11-04 01:19:06 -08:00
Cyrus Najmabadi 6fd900b4c2 Faster fixedWidthTokenLength function. 2014-11-04 01:18:51 -08:00
Cyrus Najmabadi ddfdfc3dd5 Change 'kind' into a property from a method. 2014-11-04 01:18:37 -08:00
Vladimir Matveev a8e5aad6e8 use const enums in compiler 2014-11-03 23:31:38 -08:00
Vladimir Matveev 72402f9463 update LKG 2014-11-03 22:54:55 -08:00
CyrusNajmabadi b49762d5e4 Merge pull request #1047 from Microsoft/parentProperty
Make ISyntaxElement.parent non-optional
2014-11-03 20:08:54 -08:00
Cyrus Najmabadi 5d06cd7461 Make ISyntaxElement.parent non-optional 2014-11-03 18:59:17 -08:00
CyrusNajmabadi 19886375b2 Merge pull request #1045 from Microsoft/childCountArray
Encode child counts as an array, not as a switch.
2014-11-03 18:46:25 -08:00
Cyrus Najmabadi b97c0b434b Update test. 2014-11-03 18:42:26 -08:00
Cyrus Najmabadi ecd31b6f6f Emit case clause statements on the same line if that's how they were written in source. 2014-11-03 18:36:01 -08:00
Cyrus Najmabadi 296391619e Encode child counts as an array, not as a switch. 2014-11-03 18:29:37 -08:00
CyrusNajmabadi c514f718e7 Merge pull request #1044 from Microsoft/todoSemantic
Treat getTodoComments as a semantic operation since it will be called on...
2014-11-03 15:28:40 -08:00
Cyrus Najmabadi 1a039866c1 Treat getTodoComments as a semantic operation since it will be called on every file in the project. 2014-11-03 15:12:18 -08:00
Anders Hejlsberg 4c4484be05 Accepting new baselines 2014-11-03 14:29:23 -08:00
Vladimir Matveev f801ec1d17 Merge pull request #970 from Microsoft/fold_computed_enum_members
Const enums, resolves #1029
2014-11-03 14:10:38 -08:00