Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(58)

Side by Side Diff: test/cctest/test-parsing.cc

Issue 1810943002: Add parsing for tuple types (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@types
Patch Set: More test refactoring and minor fixes Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/parsing/preparser.h ('k') | test/mjsunit/harmony/typesystem/simple-types.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 7378 matching lines...) Expand 10 before | Expand all | Expand 10 after
7389 "var x: ((number))", 7389 "var x: ((number))",
7390 "var x: ((number))[]", 7390 "var x: ((number))[]",
7391 "var x: ((number)[])", 7391 "var x: ((number)[])",
7392 "var x: ((number[]))", 7392 "var x: ((number[]))",
7393 "var x: ((a: string) => string) & ((b: number) => number)", 7393 "var x: ((a: string) => string) & ((b: number) => number)",
7394 "var x: number | any & string", 7394 "var x: number | any & string",
7395 "var s: (a: number, b?: string) => number", 7395 "var s: (a: number, b?: string) => number",
7396 "var s: (a: number, b?: string, c?) => number", 7396 "var s: (a: number, b?: string, c?) => number",
7397 "var s: (a: number, b: string, c, ...d) => number", 7397 "var s: (a: number, b: string, c, ...d) => number",
7398 "var s: (a: number, b: string, c, ...d: string[]) => number", 7398 "var s: (a: number, b: string, c, ...d: string[]) => number",
7399 "var s: (number) => number",
7400 "var s: (number: any) => number",
7401 "var s: (any: number) => number",
7399 NULL 7402 NULL
7400 }; 7403 };
7401 7404
7402 const char* error_data[] = { 7405 const char* error_data[] = {
7403 "var x: ()", 7406 "var x: ()",
7404 "var x: (a, b)", 7407 "var x: (a, b)",
7405 "var x: ((a, b))", 7408 "var x: ((a, b))",
7406 "var x: ()[]", 7409 "var x: ()[]",
7407 "var x: (()[])", 7410 "var x: (()[])",
7408 "var x: (())[]", 7411 "var x: (())[]",
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
7494 static const ParserFlag always_flags[] = {kAllowTypes}; 7497 static const ParserFlag always_flags[] = {kAllowTypes};
7495 RunParserSyncTest(untyped_context_data, correct_data, kError, NULL, 0, 7498 RunParserSyncTest(untyped_context_data, correct_data, kError, NULL, 0,
7496 always_flags, arraysize(always_flags)); 7499 always_flags, arraysize(always_flags));
7497 RunParserSyncTest(typed_context_data, correct_data, kSuccess, NULL, 0, 7500 RunParserSyncTest(typed_context_data, correct_data, kSuccess, NULL, 0,
7498 always_flags, arraysize(always_flags)); 7501 always_flags, arraysize(always_flags));
7499 RunParserSyncTest(untyped_context_data, error_data, kError, NULL, 0, 7502 RunParserSyncTest(untyped_context_data, error_data, kError, NULL, 0,
7500 always_flags, arraysize(always_flags)); 7503 always_flags, arraysize(always_flags));
7501 RunParserSyncTest(typed_context_data, error_data, kError, NULL, 0, 7504 RunParserSyncTest(typed_context_data, error_data, kError, NULL, 0,
7502 always_flags, arraysize(always_flags)); 7505 always_flags, arraysize(always_flags));
7503 } 7506 }
7507
7508 TEST(TypedModeTupleTypes) {
7509 const char* untyped_context_data[][2] = {{"", ""}, {NULL, NULL}};
7510 const char* typed_context_data[][2] = {{"'use types'; ", ""}, {NULL, NULL}};
7511
7512 const char* correct_data[] = {
7513 "var x: [number]",
7514 "var x: [number, string]",
7515 "var x: [number[], (a: string, b?: number) => boolean]",
7516 "var f: ([]: number[]) => boolean",
7517 "var f: ([x]: number[]) => boolean",
7518 "var f: ([x, y]: number[]) => boolean",
7519 "var f: ([x,, y]: number[]) => boolean",
7520 "var f: ([, x,, y,,]: number[]) => boolean",
7521 "var f: ([x, y, ...rest]: number[]) => boolean",
7522 "var f: ([any]) => number",
7523 "var f: ([number]: number[]) => number",
7524 "var f: ([one, two, ...number]: number[]) => boolean",
7525 NULL
7526 };
7527
7528 const char* error_data[] = {
7529 "var z: []",
7530 "var z: [()]",
7531 "var z: [number,]",
7532 "var x: [number, (a: string)]",
7533 "var x: [number[], (a: string, b?: number)]",
7534 "var z: [, number]",
7535 "var z: [,, number]",
7536 "var z: [string,,,]",
7537 "var z: [string,, number]",
7538 "var z: [string,, ...number]",
7539 NULL
7540 };
7541
7542 static const ParserFlag always_flags[] = {kAllowTypes};
7543 RunParserSyncTest(untyped_context_data, correct_data, kError, NULL, 0,
7544 always_flags, arraysize(always_flags));
7545 RunParserSyncTest(typed_context_data, correct_data, kSuccess, NULL, 0,
7546 always_flags, arraysize(always_flags));
7547 RunParserSyncTest(untyped_context_data, error_data, kError, NULL, 0,
7548 always_flags, arraysize(always_flags));
7549 RunParserSyncTest(typed_context_data, error_data, kError, NULL, 0,
7550 always_flags, arraysize(always_flags));
7551 }
OLDNEW
« no previous file with comments | « src/parsing/preparser.h ('k') | test/mjsunit/harmony/typesystem/simple-types.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698