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)); |
+} |