Commit graph

1839 commits

Author SHA1 Message Date
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 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
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
vladima 4d354c0286 addressed CR feedback: adjusted text of error messages, added description to 'preserveConstEnums' command line argument 2014-11-03 11:13:32 -08:00
Vladimir Matveev 3c2f556306 Merge pull request #1033 from Microsoft/type_aliases_conformance
Type aliases conformance tests, fixed #1004
2014-11-03 10:56:11 -08:00
CyrusNajmabadi 23c9b01024 Merge pull request #1037 from Microsoft/incrementalParsingPerf
Speed up incremental parsing by caching child tokens instead of walking ...
2014-11-03 00:59:15 -08:00
Cyrus Najmabadi 8954538399 Remove SyntaxNode.ts file
Lots of cleanup of the syntax generator.

Sort definitions.

Remove unused class.
2014-11-03 00:30:52 -08:00
Cyrus Najmabadi adb775c579 Simplifying node constructors 2014-11-02 23:54:26 -08:00
Cyrus Najmabadi 02ad58c7c7 Use functions instead of classes 2014-11-02 23:51:11 -08:00
Cyrus Najmabadi a8e88eafd3 Remove accept method from syntax nodes 2014-11-02 23:48:29 -08:00
Cyrus Najmabadi a00fdad52b Remove childCount and childAt from ISyntaxElement.
Conflicts:
	src/services/syntax/syntaxUtilities.generated.ts
2014-11-02 23:47:54 -08:00
Cyrus Najmabadi 1f969fe41c Remove shared arrays. 2014-11-02 23:42:54 -08:00