Chromium Code Reviews| Index: test/cctest/test-parsing.cc |
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
| index 767393e04bc7843a24c5c572755c4a93ddab77da..16ce3f71d432fdcb96368769a35b3bbb12c0ef01 100644 |
| --- a/test/cctest/test-parsing.cc |
| +++ b/test/cctest/test-parsing.cc |
| @@ -7837,3 +7837,33 @@ TEST(TypedModeBindingPatterns) { |
| RunParserSyncTest(typed_context_data, error_data, kError, NULL, 0, |
| always_flags, arraysize(always_flags)); |
| } |
| + |
| +TEST(TypedModeTypeAliases) { |
| + const char* untyped_context_data[][2] = {{"", ""}, {NULL, NULL}}; |
| + const char* typed_context_data[][2] = {{"'use types'; ", ""}, {NULL, NULL}}; |
| + |
| + const char* correct_data[] = { |
| + "type NumArray = number[]", |
| + "type Fun = (x: number) => number", |
| + "type Tree<A> = A | Tree<A>[]", |
| + NULL |
| + }; |
| + |
| + const char* error_data[] = { |
| + "type Err<> = number", |
|
rossberg
2016/04/18 09:27:43
How about "type", with no identifier following.
nickie
2016/04/19 13:52:51
Done.
We agreed that "type = number" should parse
|
| + "type Err", |
| + "type Err =", |
| + "type Err = ()", |
| + NULL |
| + }; |
| + |
| + static const ParserFlag always_flags[] = {kAllowTypes}; |
| + RunParserSyncTest(untyped_context_data, correct_data, kError, NULL, 0, |
| + always_flags, arraysize(always_flags)); |
| + RunParserSyncTest(typed_context_data, correct_data, kSuccess, NULL, 0, |
| + always_flags, arraysize(always_flags)); |
| + RunParserSyncTest(untyped_context_data, error_data, kError, NULL, 0, |
| + always_flags, arraysize(always_flags)); |
| + RunParserSyncTest(typed_context_data, error_data, kError, NULL, 0, |
| + always_flags, arraysize(always_flags)); |
| +} |