Commit graph

604 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
vladima 95ec8c065f add test for const enum that is initialized with enum member defined above 2014-11-04 12:13:19 -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
Vladimir Matveev cba9b7ff5e fixed typo 2014-11-02 16:20:00 -08:00
Vladimir Matveev 6b1a96ca29 added basic set of tests for type aliases 2014-11-02 13:34:04 -08:00
Vladimir Matveev fe7d056724 initial version of spec conformance tests for type aliases 2014-11-01 23:54:55 -07:00
Vladimir Matveev 2d94030f58 inline enum constant values for indexed access when index is string literal 2014-11-01 18:16:48 -07:00
Vladimir Matveev 0b738e86c4 merge with master 2014-11-01 02:06:37 -07:00
Vladimir Matveev 8662c689b3 add test for 'preserveConstEnums' command line argument 2014-11-01 01:06:06 -07:00
Vladimir Matveev 7d80b7186d do not treat module that contains only const enums as instantiated 2014-11-01 00:56:00 -07:00
Daniel Rosenwasser 3e8978fb60 Merge branch 'master' into templates 2014-10-31 14:54:12 -07:00
Anders Hejlsberg bf3a62909b Addressing feedback and adding regression tests 2014-10-31 14:23:29 -07:00
Vladimir Matveev dd57c6c5c0 added .d.ts generation tests 2014-10-30 22:48:32 -07:00
Vladimir Matveev 270d18711c addressed CR feedback 2014-10-30 00:55:44 -07:00
Vladimir Matveev 4aa4ea75d1 allow arithmetic operations in constant expressions, handle infinity\NaN results 2014-10-29 23:21:30 -07:00
Vladimir Matveev e949eda583 const enums, iteration 1: const enums can be used in imports, const enums can be merged only with const enums. 2014-10-29 00:17:16 -07:00
Vladimir Matveev 6f4ea86227 merge with master 2014-10-28 21:49:58 -07:00
Daniel Rosenwasser 35cf95c146 Merge branch 'master' into templates
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
	src/compiler/types.ts
	src/services/utilities.ts
2014-10-28 19:06:07 -07:00
Daniel Rosenwasser ead3c1bde8 Disabled completion list entries in template literal parts for the LS. 2014-10-28 18:50:26 -07:00
Daniel Rosenwasser d522c88295 Merge branch 'master' into templates
Conflicts:
	src/compiler/checker.ts
	src/services/services.ts
2014-10-28 18:49:35 -07:00
Daniel Rosenwasser b8535d339c Omit empty template tail literals. 2014-10-28 18:47:43 -07:00
Daniel Rosenwasser 7fad76955e Merge branch 'master' into templates 2014-10-28 18:43:43 -07:00
Jason Freeman 4486c3be9d Fix signature help crash when requested outside argument list 2014-10-28 18:20:24 -07:00
Mohamed Hegazy 8d3fa047d6 Merge branch 'master' into completionFixes 2014-10-28 09:10:03 -07:00
Vladimir Matveev 2dd9511b0a 'const enum' iteration 0. TODO: allow and track const enums in imports, add more tests 2014-10-27 23:56:07 -07:00
Vladimir Matveev 329d6e2f13 merge with master 2014-10-27 21:13:34 -07:00
Daniel Rosenwasser 3e894520ac Merge pull request #976 from Microsoft/privatePropertiesBeingTooPrivate
Fixed findAllRefs/getOccs bug where private properties declared in the constructor were only local to the constructor.
2014-10-27 18:30:31 -07:00
Daniel Rosenwasser e3d82b7db3 Fixed findAllRefs/getOccs bug where private properties declared in the constructor were only local to the constructor.
Fixes #975.
2014-10-27 18:08:49 -07:00
Mohamed Hegazy 66ac508163 Merge branch 'master' into completionFixes
Conflicts:
	src/services/services.ts
2014-10-27 15:39:54 -07:00
Mohamed Hegazy 962c4de875 Address code review comments 2014-10-27 15:30:38 -07:00
Vladimir Matveev 365587f6bf addressed CR feedback, added support for indexed access 2014-10-26 23:42:20 -07:00
Vladimir Matveev ce336bcec7 added folding for references to enum members in enum member initializers, added tests 2014-10-26 16:40:02 -07:00
Daniel Rosenwasser c03dc107ca Added syntactic classification for templates; also made 'spans' a NodeArray. 2014-10-24 17:14:41 -07:00
Jason Freeman bfb63df568 Merge branch 'master' into overloadResolution
Conflicts:
	src/compiler/diagnosticInformationMap.generated.ts
	src/compiler/diagnosticMessages.json
2014-10-24 16:36:42 -07:00
Mohamed Hegazy 51e101c55e Merge branch 'master' into letAndConst 2014-10-24 10:32:21 -07:00
Mohamed Hegazy 67c78a2662 Only check for collisions with variabels and not properties 2014-10-24 10:30:40 -07:00