Chromium Code Reviews| Index: test/cctest/test-parsing.cc |
| diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc |
| index bc04b436d2ef5a15dce4280f693b7bf900823941..79690f209e367406eddc37914252e05a386892e2 100644 |
| --- a/test/cctest/test-parsing.cc |
| +++ b/test/cctest/test-parsing.cc |
| @@ -7910,3 +7910,34 @@ TEST(TypedModeClassDeclarations) { |
| RunParserSyncTest(typed_context_data, error_data, kError, NULL, 0, |
| always_flags, arraysize(always_flags)); |
| } |
| + |
| +TEST(TypedModeInterfaceDeclarations) { |
| + const char* untyped_context_data[][2] = {{"", ""}, {NULL, NULL}}; |
| + const char* typed_context_data[][2] = {{"'use types'; ", ""}, {NULL, NULL}}; |
| + |
| + const char* correct_data[] = { |
| + "interface I { f(x: number) : boolean }", |
| + "interface J extends I { g(x: number) : boolean }", |
| + "interface K extends I, J { h(x: number) : boolean }", |
| + "interface I<A> {}", |
| + "interface I<A, B> extends A, J<B> {}", |
| + NULL |
| + }; |
| + |
| + const char* error_data[] = { |
| + "interface I { x: () }", |
|
rossberg
2016/04/18 11:06:23
interface {}
interface extends I {}
nickie
2016/04/19 17:19:01
Done.
|
| + "interface I { f(a: ()) }", |
| + "interface I<> {}", |
| + 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)); |
| +} |