Commit Graph

34030 Commits

Author SHA1 Message Date
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
Jason Freeman
2145b2f445 Merge pull request #1071 from Microsoft/computedPropertyName
Change name of Declaration node to be Identifier | ComputedPropertyName
2014-11-06 12:05:48 -08:00
Jason Freeman
5164fbc3bd Merge branch 'master' into computedPropertyName 2014-11-06 11:52:19 -08:00
Jason Freeman
279166be50 Address feedback 2014-11-06 11:51:49 -08:00
vladima
c3a88d3482 code cleanup: replace nulls with undefined 2014-11-06 11:10:27 -08:00
vladima
ace99ad051 code cleanup, removed unused files 2014-11-06 10:57:19 -08:00
vladima
bbc2da79bb return last scanned token if possible 2014-11-06 00:37:58 -08:00
CyrusNajmabadi
147550e2d3 Merge pull request #1065 from Microsoft/shorthandProperties
Add support for parsing shorthand property assignments.
2014-11-05 22:53:43 -08:00
Vladimir Matveev
154977ce95 add child delta for all nodes 2014-11-05 19:35:53 -08:00
Daniel Rosenwasser
652b7f8909 Corrected comment. 2014-11-05 18:34:53 -08:00
Daniel Rosenwasser
bcddb101aa Proper type arg inference with apppropriate overload res tests. 2014-11-05 18:20:40 -08:00
Jason Freeman
bc70e4a29d Make certain types of FunctionLike require block bodies 2014-11-05 18:04:19 -08:00
Jason Freeman
6c85dbe140 Refactor Declaration.name into Identifier | ComputedPropertyName 2014-11-05 17:47:30 -08:00
Vladimir Matveev
edbb99d959 merge with master 2014-11-05 17:34:42 -08:00
Vladimir Matveev
13054710c7 track effective parent indentation for list items 2014-11-05 17:07:47 -08:00
Vladimir Matveev
680b59481b fix indentation for nested items 2014-11-05 15:35:18 -08:00
Vladimir Matveev
9a30fa882b do not indent tokens with errors 2014-11-05 15:29:51 -08:00
Vladimir Matveev
f28c1a3498 fix indentations in functions 2014-11-05 15:23:11 -08:00
Daniel Rosenwasser
fea1165186 Merge branch 'master' into taggedTemplates 2014-11-05 14:06:19 -08:00
Daniel Rosenwasser
356622c8e9 Merge pull request #1067 from Microsoft/deduplicateTypeNotAssignableMessage
Removed duplicate diagnostic message.
2014-11-05 12:48:57 -08:00
Daniel Rosenwasser
e12e31b144 Removed duplicate diagnostic. 2014-11-05 12:26:03 -08:00
Anders Hejlsberg
86f290fbb9 Initial parser support for destructuring patterns 2014-11-05 06:21:58 -08:00
Cyrus Najmabadi
bea124b217 Simplify code. 2014-11-05 04:08:20 -08:00
Cyrus Najmabadi
1a1c9ace8a Add support for parsing computed property names. 2014-11-05 03:49:25 -08:00
Cyrus Najmabadi
cb97682d83 Add the IPropertyNameSyntax.
This will help us introduce the ComputedPropertyName concept in the future.

Conflicts:
	src/services/syntax/syntaxNodes.concrete.generated.ts
2014-11-05 00:54:53 -08:00
Daniel Rosenwasser
39daf6cfbe Merge pull request #1060 from Microsoft/classifyKeywordsWithoutSyntacticClassifier
Classify keywords in type args in the absence of syntactic classification
2014-11-04 23:44:33 -08:00
Cyrus Najmabadi
ae87b08e33 Add support for parsing shorthand property assignments. 2014-11-04 23:04:07 -08:00
CyrusNajmabadi
fff8ef8b84 Merge pull request #1063 from Microsoft/nodeCleanup
Node cleanup
2014-11-04 23:03:13 -08:00
Cyrus Najmabadi
5952036e2c Remove unnecessary brand. 2014-11-04 22:43:11 -08:00
Cyrus Najmabadi
3753058874 Add an IAccessorSyntax interface. 2014-11-04 22:43:01 -08:00
Cyrus Najmabadi
ba2bdc4124 Add missing brands to the syntax interfaces. 2014-11-04 22:42:43 -08:00
Cyrus Najmabadi
a9a2fe501a Specialize computeData for arrays. 2014-11-04 22:41:13 -08:00
Cyrus Najmabadi
4cefe353f3 remove file. 2014-11-04 22:40:59 -08:00
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