537 Commits

Author SHA1 Message Date
Sheetal Nandi
152c77cd2a Add test cases for typeof x == s and typeof x != s form of typeguard which has no effect on narrowing type 2014-11-12 12:49:29 -08:00
Sheetal Nandi
45ca9d285f Add test case for instance of type guard with interface with prototype property 2014-11-12 12:36:06 -08:00
Sheetal Nandi
c0b26a9691 Merge branch 'master' into typeGuardConformance 2014-11-12 12:24:43 -08:00
Sheetal Nandi
b1297b2b65 Instead of setting fresh value, or the value with existing one of if alias is referenced in value position
Fixes #1130
2014-11-11 23:49:57 -08:00
Sheetal Nandi
ce51343e73 Adding testcase for the incorrect eliding of the import declarations 2014-11-11 23:38:18 -08:00
Sheetal Nandi
4c28e73372 All the identifiers need to be escaped to make sure compiler doesnt confuse __NonUnderscore character incorrectly
Fixes #548
2014-11-11 15:44:25 -08:00
Daniel Rosenwasser
7a5c360025 Merge pull request #1072 from Microsoft/taggedTemplates
Type checking for tagged template expressions
2014-11-11 13:54:26 -08:00
Sheetal Nandi
57af2623c6 If we are comparing left hand side for is position of type node, it is false, because it is namespace position and not type position
Fixes #837
2014-11-10 19:19:33 -08:00
Daniel Rosenwasser
6d353c078c Merge branch 'master' into taggedTemplates 2014-11-07 16:24:40 -08:00
Daniel Rosenwasser
d99023ed98 Merge pull request #1094 from Microsoft/findAllRefsInTemplates
Corrected isExpression for templates.
2014-11-07 16:24:22 -08:00
Daniel Rosenwasser
986a0b7343 Fixed issues with incomplete calls, cleaned some code up. 2014-11-07 16:23:59 -08:00
Daniel Rosenwasser
c9919bb9ec Added baselines. 2014-11-07 14:13:38 -08:00
Sheetal Nandi
8ab038f1a3 Fixed the merge conflicts that went undetected in github 2014-11-06 18:02:29 -08:00
Sheetal Nandi
9e2eb3bc03 Merge pull request #1058 from Microsoft/contextualUnionTypeConformance
Contextual union type conformance test cases and Fix for contextual union signature
2014-11-06 16:25:40 -08:00
Sheetal Nandi
727f36ad02 Merge pull request #1080 from Microsoft/breakpointTypeAlias
Breakpoint type alias
2014-11-06 16:24:56 -08:00
Sheetal Nandi
e4c88eeae1 Breakpoint validation for Let and cost 2014-11-06 15:49:59 -08:00
Sheetal Nandi
61c45816c4 Type aliases cannot have breakpoints 2014-11-06 15:40:28 -08:00
Sheetal Nandi
1e4f0b81fa Verify breakpoints in type alias syntax 2014-11-06 15:38:47 -08:00
Sheetal Nandi
da314a3774 Merge pull request #1041 from Microsoft/declFilePrivateMethodOverload
Declaration file emit for private method overloads
2014-11-06 14:54:06 -08:00
Sheetal Nandi
52a8560298 Typeguards of form !expr
•	A type guard of the form !expr
o	when true, narrows the type of x by expr when false, or
o	when false, narrows the type of x by expr when true.
2014-11-06 13:04:43 -08:00
Sheetal Nandi
c9a03dc659 Typeguards of form expr1 || expr2
•	A type guard of the form expr1 || expr2
o	when true, narrows the type of x to T1 | T2, where T1 is the type of x narrowed by expr1 when true, and T2 is the type of x narrowed by expr1 when false and then by expr2 when true, or
o	when false, narrows the type of x by expr1 when false and then by expr2 when false.
2014-11-06 13:04:40 -08:00
Sheetal Nandi
486d37ec90 TypeGuard of for expr1 && expr2
•	A type guard of the form expr1 && expr2
o	when true, narrows the type of x by expr1 when true and then by expr2 when true, or
o	when false, narrows the type of x to T1 | T2, where T1 is the type of x narrowed by expr1 when false, and T2 is the type of x narrowed by expr1 when true and then by expr2 when false.
2014-11-06 13:04:37 -08:00
Sheetal Nandi
7ebf5371a5 Test cases for typeguards of form typeof x === s and typeof x !== s
•	A type guard of the form typeof x === s, where s is a string literal with the value ‘string’, ‘number’, or ‘boolean’,
o	when true, narrows the type of x to the given primitive type, or
o	when false, removes the primitive type from the type of x.
•	A type guard of the form typeof x === s, where s is a string literal with any value but ‘string’, ‘number’, or ‘boolean’,
o	when true, removes the primitive types string, number, and boolean from the type of x, or
o	when false, has no effect on the type of x.
•	A type guard of the form typeof x !== s, where s is a string literal,
o	when true, narrows the type of x by typeof x === s when false, or
o	when false, narrows the type of x by typeof x === s when true.
2014-11-06 13:04:34 -08:00
Sheetal Nandi
5961ed7154 Test typeguard of form instance of
•	A type guard of the form x instanceof C, where C is of a subtype of the global type ‘Function’ and C has a property named ‘prototype’
o	when true, narrows the type of x to the type of the ‘prototype’ property in C provided it is a subtype of the type of x, or
o	when false, has no effect on the type of x.
2014-11-06 13:04:30 -08:00
Sheetal Nandi
2fecc132ab Tests for typeguards allowed on variables and parameters only
From spec:
Note that type guards affect types of variables and parameters only and have no effect on members of objects such as properties
2014-11-06 13:04:27 -08:00
Sheetal Nandi
33cdc2f876 Type guards in || operator
•	In the right operand of a || operation, the type of a variable or parameter is narrowed by any type guard in the left operand when false, provided the right operand contains no assignments to the variable or parameter.
2014-11-06 13:04:24 -08:00
Sheetal Nandi
11912e8fde TypeGuards in right operand of && operation
•	In the right operand of a && operation, the type of a variable or parameter is narrowed by any type guard in the left operand when true, provided the right operand contains no assignments to the variable or parameter.
2014-11-06 13:04:21 -08:00
Sheetal Nandi
55952af304 Tests for conditional expression typeguards
•	In the true expression of a conditional expression, the type of a variable or parameter is narrowed by any type guard in the condition when true, provided the expression contains no assignments to the variable or parameter.
•	In the false expression of a conditional expression, the type of a variable or parameter is narrowed by any type guard in the condition when false, provided the expression contains no assignments to the variable or parameter.
2014-11-06 13:04:18 -08:00
Sheetal Nandi
4b3d603f24 Test cases for typeguards are scoped at function /module block 2014-11-06 13:04:14 -08:00
Sheetal Nandi
2088a89223 Test cases to make sure typeguard is defeated in case of function calls
From spec:
Also note that it is possible to defeat a type guard by calling a function that changes the type of the guarded variable.
2014-11-06 13:04:11 -08:00
Sheetal Nandi
e79bec5cbf TypeGuards narrow types in if statement works per spec:
The type of a variable or parameter is narrowed in the following situations:
•	In the true branch statement of an ‘if’ statement, the type of a variable or parameter is narrowed by any type guard in the ‘if’ condition when true, provided the if statement contains no assignments to the variable or parameter.
•	In the false branch statement of an ‘if’ statement, the type of a variable or parameter is narrowed by any type guard in the ‘if’ condition when false, provided the if statement contains no assignments to the variable or parameter.
2014-11-06 13:04:08 -08:00
Daniel Rosenwasser
bcddb101aa Proper type arg inference with apppropriate overload res tests. 2014-11-05 18:20:40 -08:00
Daniel Rosenwasser
fea1165186 Merge branch 'master' into taggedTemplates 2014-11-05 14:06:19 -08:00
Daniel Rosenwasser
e12e31b144 Removed duplicate diagnostic. 2014-11-05 12:26:03 -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
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
vladima
95ec8c065f add test for const enum that is initialized with enum member defined above 2014-11-04 12:13:19 -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
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
Sheetal Nandi
3ce841466d Declaration file emit for private method overloads (#1018) 2014-11-03 12:50:32 -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
cba9b7ff5e fixed typo 2014-11-02 16:20:00 -08:00
Anders Hejlsberg
edb6543354 Accepting new baselines 2014-11-02 15:21:10 -08:00
Vladimir Matveev
6b1a96ca29 added basic set of tests for type aliases 2014-11-02 13:34:04 -08:00