First cut test for Analyzer/BodyBuilder integration test
Change-Id: Ie5f956a9a24beb1922b3f7c93603edf28d35d907
Reviewed-on: https://dart-review.googlesource.com/54080
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
diff --git a/pkg/analyzer/test/generated/parser_forest_test.dart b/pkg/analyzer/test/generated/parser_forest_test.dart
new file mode 100644
index 0000000..5f9a69e
--- /dev/null
+++ b/pkg/analyzer/test/generated/parser_forest_test.dart
@@ -0,0 +1,1332 @@
+// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io' show File;
+
+import 'package:analyzer/dart/ast/ast.dart';
+import "package:front_end/src/api_prototype/front_end.dart";
+import "package:front_end/src/api_prototype/memory_file_system.dart";
+import "package:front_end/src/base/processed_options.dart";
+import "package:front_end/src/compute_platform_binaries_location.dart";
+import 'package:front_end/src/fasta/compiler_context.dart';
+import 'package:front_end/src/fasta/constant_context.dart';
+import 'package:front_end/src/fasta/dill/built_type_builder.dart';
+import 'package:front_end/src/fasta/dill/dill_target.dart';
+import "package:front_end/src/fasta/fasta_codes.dart";
+import 'package:front_end/src/fasta/kernel/body_builder.dart';
+import 'package:front_end/src/fasta/kernel/forest.dart';
+import 'package:front_end/src/fasta/kernel/kernel_builder.dart';
+import "package:front_end/src/fasta/kernel/kernel_target.dart";
+import 'package:front_end/src/fasta/modifier.dart' as Modifier;
+import 'package:front_end/src/fasta/parser/parser.dart';
+import 'package:front_end/src/fasta/scanner.dart';
+import 'package:front_end/src/fasta/ticker.dart';
+import 'package:front_end/src/fasta/type_inference/type_inferrer.dart';
+import 'package:front_end/src/fasta/type_inference/type_schema_environment.dart';
+import 'package:front_end/src/fasta/uri_translator_impl.dart';
+import 'package:front_end/src/scanner/token.dart';
+import 'package:kernel/ast.dart' as kernel;
+import 'package:kernel/class_hierarchy.dart' as kernel;
+import 'package:kernel/core_types.dart' as kernel;
+import 'package:kernel/kernel.dart' as kernel;
+import 'package:test/test.dart';
+import 'package:test_reflective_loader/test_reflective_loader.dart';
+
+import 'parser_test.dart';
+
+main() async {
+ defineReflectiveSuite(() {
+ defineReflectiveTests(ExpressionParserTest_Forest);
+ });
+}
+
+/**
+ * Tests of the fasta parser based on [ExpressionParserTestMixin].
+ */
+@reflectiveTest
+class ExpressionParserTest_Forest extends FastaParserTestCase
+ with ExpressionParserTestMixin {
+ @failingTest
+ void test_1_plus_2() {
+ Expression expression = parseAdditiveExpression('1 + 2');
+ expect(expression, isNotNull);
+ assertNoErrors();
+ var binaryExpression = expression as BinaryExpression;
+ expect(binaryExpression.leftOperand, isNotNull);
+ expect(binaryExpression.operator, isNotNull);
+ expect(binaryExpression.operator.type, TokenType.PLUS);
+ expect(binaryExpression.rightOperand, isNotNull);
+ }
+
+ @failingTest
+ void test_namedArgument() {
+ super.test_namedArgument();
+ }
+
+ @failingTest
+ void test_parseAdditiveExpression_normal() {
+ super.test_parseAdditiveExpression_normal();
+ }
+
+ @failingTest
+ void test_parseAdditiveExpression_super() {
+ super.test_parseAdditiveExpression_super();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_expression_args_dot() {
+ super.test_parseAssignableExpression_expression_args_dot();
+ }
+
+ @failingTest
+ void
+ test_parseAssignableExpression_expression_args_dot_typeArgumentComments() {
+ super
+ .test_parseAssignableExpression_expression_args_dot_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_expression_args_dot_typeArguments() {
+ super.test_parseAssignableExpression_expression_args_dot_typeArguments();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_expression_dot() {
+ super.test_parseAssignableExpression_expression_dot();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_expression_index() {
+ super.test_parseAssignableExpression_expression_index();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_expression_question_dot() {
+ super.test_parseAssignableExpression_expression_question_dot();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_identifier() {
+ super.test_parseAssignableExpression_identifier();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_identifier_args_dot() {
+ super.test_parseAssignableExpression_identifier_args_dot();
+ }
+
+ @failingTest
+ void
+ test_parseAssignableExpression_identifier_args_dot_typeArgumentComments() {
+ super
+ .test_parseAssignableExpression_identifier_args_dot_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_identifier_args_dot_typeArguments() {
+ super.test_parseAssignableExpression_identifier_args_dot_typeArguments();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_identifier_dot() {
+ super.test_parseAssignableExpression_identifier_dot();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_identifier_index() {
+ super.test_parseAssignableExpression_identifier_index();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_identifier_question_dot() {
+ super.test_parseAssignableExpression_identifier_question_dot();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_super_dot() {
+ super.test_parseAssignableExpression_super_dot();
+ }
+
+ @failingTest
+ void test_parseAssignableExpression_super_index() {
+ super.test_parseAssignableExpression_super_index();
+ }
+
+ @failingTest
+ void test_parseAssignableSelector_dot() {
+ super.test_parseAssignableSelector_dot();
+ }
+
+ @failingTest
+ void test_parseAssignableSelector_index() {
+ super.test_parseAssignableSelector_index();
+ }
+
+ @failingTest
+ void test_parseAssignableSelector_none() {
+ super.test_parseAssignableSelector_none();
+ }
+
+ @failingTest
+ void test_parseAssignableSelector_question_dot() {
+ super.test_parseAssignableSelector_question_dot();
+ }
+
+ @failingTest
+ void test_parseAwaitExpression() {
+ super.test_parseAwaitExpression();
+ }
+
+ @failingTest
+ void test_parseBitwiseAndExpression_normal() {
+ super.test_parseBitwiseAndExpression_normal();
+ }
+
+ @failingTest
+ void test_parseBitwiseAndExpression_super() {
+ super.test_parseBitwiseAndExpression_super();
+ }
+
+ @failingTest
+ void test_parseBitwiseOrExpression_normal() {
+ super.test_parseBitwiseOrExpression_normal();
+ }
+
+ @failingTest
+ void test_parseBitwiseOrExpression_super() {
+ super.test_parseBitwiseOrExpression_super();
+ }
+
+ @failingTest
+ void test_parseBitwiseXorExpression_normal() {
+ super.test_parseBitwiseXorExpression_normal();
+ }
+
+ @failingTest
+ void test_parseBitwiseXorExpression_super() {
+ super.test_parseBitwiseXorExpression_super();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_i() {
+ super.test_parseCascadeSection_i();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_ia() {
+ super.test_parseCascadeSection_ia();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_ia_typeArgumentComments() {
+ super.test_parseCascadeSection_ia_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_ia_typeArguments() {
+ super.test_parseCascadeSection_ia_typeArguments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_ii() {
+ super.test_parseCascadeSection_ii();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_ii_typeArgumentComments() {
+ super.test_parseCascadeSection_ii_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_ii_typeArguments() {
+ super.test_parseCascadeSection_ii_typeArguments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_p() {
+ super.test_parseCascadeSection_p();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_p_assign() {
+ super.test_parseCascadeSection_p_assign();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_p_assign_withCascade() {
+ super.test_parseCascadeSection_p_assign_withCascade();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_p_assign_withCascade_typeArgumentComments() {
+ super.test_parseCascadeSection_p_assign_withCascade_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_p_assign_withCascade_typeArguments() {
+ super.test_parseCascadeSection_p_assign_withCascade_typeArguments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_p_builtIn() {
+ super.test_parseCascadeSection_p_builtIn();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_pa() {
+ super.test_parseCascadeSection_pa();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_pa_typeArgumentComments() {
+ super.test_parseCascadeSection_pa_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_pa_typeArguments() {
+ super.test_parseCascadeSection_pa_typeArguments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_paa() {
+ super.test_parseCascadeSection_paa();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_paa_typeArgumentComments() {
+ super.test_parseCascadeSection_paa_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_paa_typeArguments() {
+ super.test_parseCascadeSection_paa_typeArguments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_paapaa() {
+ super.test_parseCascadeSection_paapaa();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_paapaa_typeArgumentComments() {
+ super.test_parseCascadeSection_paapaa_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_paapaa_typeArguments() {
+ super.test_parseCascadeSection_paapaa_typeArguments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_pap() {
+ super.test_parseCascadeSection_pap();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_pap_typeArgumentComments() {
+ super.test_parseCascadeSection_pap_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseCascadeSection_pap_typeArguments() {
+ super.test_parseCascadeSection_pap_typeArguments();
+ }
+
+ @failingTest
+ void test_parseConditionalExpression() {
+ super.test_parseConditionalExpression();
+ }
+
+ @failingTest
+ void test_parseConstExpression_instanceCreation() {
+ super.test_parseConstExpression_instanceCreation();
+ }
+
+ @failingTest
+ void test_parseConstExpression_listLiteral_typed() {
+ super.test_parseConstExpression_listLiteral_typed();
+ }
+
+ @failingTest
+ void test_parseConstExpression_listLiteral_typed_genericComment() {
+ super.test_parseConstExpression_listLiteral_typed_genericComment();
+ }
+
+ @failingTest
+ void test_parseConstExpression_listLiteral_untyped() {
+ super.test_parseConstExpression_listLiteral_untyped();
+ }
+
+ @failingTest
+ void test_parseConstExpression_mapLiteral_typed() {
+ super.test_parseConstExpression_mapLiteral_typed();
+ }
+
+ @failingTest
+ void test_parseConstExpression_mapLiteral_typed_genericComment() {
+ super.test_parseConstExpression_mapLiteral_typed_genericComment();
+ }
+
+ @failingTest
+ void test_parseConstExpression_mapLiteral_untyped() {
+ super.test_parseConstExpression_mapLiteral_untyped();
+ }
+
+ @failingTest
+ void test_parseEqualityExpression_normal() {
+ super.test_parseEqualityExpression_normal();
+ }
+
+ @failingTest
+ void test_parseEqualityExpression_super() {
+ super.test_parseEqualityExpression_super();
+ }
+
+ @failingTest
+ void test_parseExpression_assign() {
+ super.test_parseExpression_assign();
+ }
+
+ @failingTest
+ void test_parseExpression_assign_compound() {
+ super.test_parseExpression_assign_compound();
+ }
+
+ @failingTest
+ void test_parseExpression_comparison() {
+ super.test_parseExpression_comparison();
+ }
+
+ @failingTest
+ void test_parseExpression_function_async() {
+ super.test_parseExpression_function_async();
+ }
+
+ @failingTest
+ void test_parseExpression_function_asyncStar() {
+ super.test_parseExpression_function_asyncStar();
+ }
+
+ @failingTest
+ void test_parseExpression_function_sync() {
+ super.test_parseExpression_function_sync();
+ }
+
+ @failingTest
+ void test_parseExpression_function_syncStar() {
+ super.test_parseExpression_function_syncStar();
+ }
+
+ @failingTest
+ void test_parseExpression_invokeFunctionExpression() {
+ super.test_parseExpression_invokeFunctionExpression();
+ }
+
+ @failingTest
+ void test_parseExpression_nonAwait() {
+ super.test_parseExpression_nonAwait();
+ }
+
+ @failingTest
+ void test_parseExpression_superMethodInvocation() {
+ super.test_parseExpression_superMethodInvocation();
+ }
+
+ @failingTest
+ void test_parseExpression_superMethodInvocation_typeArgumentComments() {
+ super.test_parseExpression_superMethodInvocation_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseExpression_superMethodInvocation_typeArguments() {
+ super.test_parseExpression_superMethodInvocation_typeArguments();
+ }
+
+ @failingTest
+ void test_parseExpression_superMethodInvocation_typeArguments_chained() {
+ super.test_parseExpression_superMethodInvocation_typeArguments_chained();
+ }
+
+ @failingTest
+ void test_parseExpressionList_multiple() {
+ super.test_parseExpressionList_multiple();
+ }
+
+ @failingTest
+ void test_parseExpressionList_single() {
+ super.test_parseExpressionList_single();
+ }
+
+ @failingTest
+ void test_parseExpressionWithoutCascade_assign() {
+ super.test_parseExpressionWithoutCascade_assign();
+ }
+
+ @failingTest
+ void test_parseExpressionWithoutCascade_comparison() {
+ super.test_parseExpressionWithoutCascade_comparison();
+ }
+
+ @failingTest
+ void test_parseExpressionWithoutCascade_superMethodInvocation() {
+ super.test_parseExpressionWithoutCascade_superMethodInvocation();
+ }
+
+ @failingTest
+ void
+ test_parseExpressionWithoutCascade_superMethodInvocation_typeArgumentComments() {
+ super
+ .test_parseExpressionWithoutCascade_superMethodInvocation_typeArgumentComments();
+ }
+
+ @failingTest
+ void
+ test_parseExpressionWithoutCascade_superMethodInvocation_typeArguments() {
+ super
+ .test_parseExpressionWithoutCascade_superMethodInvocation_typeArguments();
+ }
+
+ @failingTest
+ void test_parseFunctionExpression_body_inExpression() {
+ super.test_parseFunctionExpression_body_inExpression();
+ }
+
+ @failingTest
+ void test_parseFunctionExpression_typeParameterComments() {
+ super.test_parseFunctionExpression_typeParameterComments();
+ }
+
+ @failingTest
+ void test_parseFunctionExpression_typeParameters() {
+ super.test_parseFunctionExpression_typeParameters();
+ }
+
+ @failingTest
+ void test_parseInstanceCreationExpression_qualifiedType() {
+ super.test_parseInstanceCreationExpression_qualifiedType();
+ }
+
+ @failingTest
+ void test_parseInstanceCreationExpression_qualifiedType_named() {
+ super.test_parseInstanceCreationExpression_qualifiedType_named();
+ }
+
+ @failingTest
+ void
+ test_parseInstanceCreationExpression_qualifiedType_named_typeArgumentComments() {
+ super
+ .test_parseInstanceCreationExpression_qualifiedType_named_typeArgumentComments();
+ }
+
+ @failingTest
+ void
+ test_parseInstanceCreationExpression_qualifiedType_named_typeArguments() {
+ super
+ .test_parseInstanceCreationExpression_qualifiedType_named_typeArguments();
+ }
+
+ @failingTest
+ void
+ test_parseInstanceCreationExpression_qualifiedType_typeArgumentComments() {
+ super
+ .test_parseInstanceCreationExpression_qualifiedType_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseInstanceCreationExpression_qualifiedType_typeArguments() {
+ super.test_parseInstanceCreationExpression_qualifiedType_typeArguments();
+ }
+
+ @failingTest
+ void test_parseInstanceCreationExpression_type() {
+ super.test_parseInstanceCreationExpression_type();
+ }
+
+ @failingTest
+ void test_parseInstanceCreationExpression_type_named() {
+ super.test_parseInstanceCreationExpression_type_named();
+ }
+
+ @failingTest
+ void test_parseInstanceCreationExpression_type_named_typeArgumentComments() {
+ super
+ .test_parseInstanceCreationExpression_type_named_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseInstanceCreationExpression_type_named_typeArguments() {
+ super.test_parseInstanceCreationExpression_type_named_typeArguments();
+ }
+
+ @failingTest
+ void test_parseInstanceCreationExpression_type_typeArgumentComments() {
+ super.test_parseInstanceCreationExpression_type_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parseInstanceCreationExpression_type_typeArguments() {
+ super.test_parseInstanceCreationExpression_type_typeArguments();
+ }
+
+ @failingTest
+ void test_parseListLiteral_empty_oneToken() {
+ super.test_parseListLiteral_empty_oneToken();
+ }
+
+ @failingTest
+ void test_parseListLiteral_empty_oneToken_withComment() {
+ super.test_parseListLiteral_empty_oneToken_withComment();
+ }
+
+ @failingTest
+ void test_parseListLiteral_empty_twoTokens() {
+ super.test_parseListLiteral_empty_twoTokens();
+ }
+
+ @failingTest
+ void test_parseListLiteral_multiple() {
+ super.test_parseListLiteral_multiple();
+ }
+
+ @failingTest
+ void test_parseListLiteral_single() {
+ super.test_parseListLiteral_single();
+ }
+
+ @failingTest
+ void test_parseListLiteral_single_withTypeArgument() {
+ super.test_parseListLiteral_single_withTypeArgument();
+ }
+
+ @failingTest
+ void test_parseListOrMapLiteral_list_noType() {
+ super.test_parseListOrMapLiteral_list_noType();
+ }
+
+ @failingTest
+ void test_parseListOrMapLiteral_list_type() {
+ super.test_parseListOrMapLiteral_list_type();
+ }
+
+ @failingTest
+ void test_parseListOrMapLiteral_map_noType() {
+ super.test_parseListOrMapLiteral_map_noType();
+ }
+
+ @failingTest
+ void test_parseListOrMapLiteral_map_type() {
+ super.test_parseListOrMapLiteral_map_type();
+ }
+
+ @failingTest
+ void test_parseLogicalAndExpression() {
+ super.test_parseLogicalAndExpression();
+ }
+
+ @failingTest
+ void test_parseLogicalOrExpression() {
+ super.test_parseLogicalOrExpression();
+ }
+
+ @failingTest
+ void test_parseMapLiteral_empty() {
+ super.test_parseMapLiteral_empty();
+ }
+
+ @failingTest
+ void test_parseMapLiteral_multiple() {
+ super.test_parseMapLiteral_multiple();
+ }
+
+ @failingTest
+ void test_parseMapLiteral_single() {
+ super.test_parseMapLiteral_single();
+ }
+
+ @failingTest
+ void test_parseMapLiteralEntry_complex() {
+ super.test_parseMapLiteralEntry_complex();
+ }
+
+ @failingTest
+ void test_parseMapLiteralEntry_int() {
+ super.test_parseMapLiteralEntry_int();
+ }
+
+ @failingTest
+ void test_parseMapLiteralEntry_string() {
+ super.test_parseMapLiteralEntry_string();
+ }
+
+ @failingTest
+ void test_parseMultiplicativeExpression_normal() {
+ super.test_parseMultiplicativeExpression_normal();
+ }
+
+ @failingTest
+ void test_parseMultiplicativeExpression_super() {
+ super.test_parseMultiplicativeExpression_super();
+ }
+
+ @failingTest
+ void test_parseNewExpression() {
+ super.test_parseNewExpression();
+ }
+
+ @failingTest
+ void test_parsePostfixExpression_decrement() {
+ super.test_parsePostfixExpression_decrement();
+ }
+
+ @failingTest
+ void test_parsePostfixExpression_increment() {
+ super.test_parsePostfixExpression_increment();
+ }
+
+ @failingTest
+ void test_parsePostfixExpression_none_indexExpression() {
+ super.test_parsePostfixExpression_none_indexExpression();
+ }
+
+ @failingTest
+ void test_parsePostfixExpression_none_methodInvocation() {
+ super.test_parsePostfixExpression_none_methodInvocation();
+ }
+
+ @failingTest
+ void test_parsePostfixExpression_none_methodInvocation_question_dot() {
+ super.test_parsePostfixExpression_none_methodInvocation_question_dot();
+ }
+
+ @failingTest
+ void
+ test_parsePostfixExpression_none_methodInvocation_question_dot_typeArgumentComments() {
+ super
+ .test_parsePostfixExpression_none_methodInvocation_question_dot_typeArgumentComments();
+ }
+
+ @failingTest
+ void
+ test_parsePostfixExpression_none_methodInvocation_question_dot_typeArguments() {
+ super
+ .test_parsePostfixExpression_none_methodInvocation_question_dot_typeArguments();
+ }
+
+ @failingTest
+ void
+ test_parsePostfixExpression_none_methodInvocation_typeArgumentComments() {
+ super
+ .test_parsePostfixExpression_none_methodInvocation_typeArgumentComments();
+ }
+
+ @failingTest
+ void test_parsePostfixExpression_none_methodInvocation_typeArguments() {
+ super.test_parsePostfixExpression_none_methodInvocation_typeArguments();
+ }
+
+ @failingTest
+ void test_parsePostfixExpression_none_propertyAccess() {
+ super.test_parsePostfixExpression_none_propertyAccess();
+ }
+
+ @failingTest
+ void test_parsePrefixedIdentifier_noPrefix() {
+ super.test_parsePrefixedIdentifier_noPrefix();
+ }
+
+ @failingTest
+ void test_parsePrefixedIdentifier_prefix() {
+ super.test_parsePrefixedIdentifier_prefix();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_const() {
+ super.test_parsePrimaryExpression_const();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_double() {
+ super.test_parsePrimaryExpression_double();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_false() {
+ super.test_parsePrimaryExpression_false();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_function_arguments() {
+ super.test_parsePrimaryExpression_function_arguments();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_function_noArguments() {
+ super.test_parsePrimaryExpression_function_noArguments();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_genericFunctionExpression() {
+ super.test_parsePrimaryExpression_genericFunctionExpression();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_hex() {
+ super.test_parsePrimaryExpression_hex();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_identifier() {
+ super.test_parsePrimaryExpression_identifier();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_int() {
+ super.test_parsePrimaryExpression_int();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_listLiteral() {
+ super.test_parsePrimaryExpression_listLiteral();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_listLiteral_index() {
+ super.test_parsePrimaryExpression_listLiteral_index();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_listLiteral_typed() {
+ super.test_parsePrimaryExpression_listLiteral_typed();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_listLiteral_typed_genericComment() {
+ super.test_parsePrimaryExpression_listLiteral_typed_genericComment();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_mapLiteral() {
+ super.test_parsePrimaryExpression_mapLiteral();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_mapLiteral_typed() {
+ super.test_parsePrimaryExpression_mapLiteral_typed();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_mapLiteral_typed_genericComment() {
+ super.test_parsePrimaryExpression_mapLiteral_typed_genericComment();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_new() {
+ super.test_parsePrimaryExpression_new();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_null() {
+ super.test_parsePrimaryExpression_null();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_parenthesized() {
+ super.test_parsePrimaryExpression_parenthesized();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_string() {
+ super.test_parsePrimaryExpression_string();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_string_multiline() {
+ super.test_parsePrimaryExpression_string_multiline();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_string_raw() {
+ super.test_parsePrimaryExpression_string_raw();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_super() {
+ super.test_parsePrimaryExpression_super();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_this() {
+ super.test_parsePrimaryExpression_this();
+ }
+
+ @failingTest
+ void test_parsePrimaryExpression_true() {
+ super.test_parsePrimaryExpression_true();
+ }
+
+ @failingTest
+ void test_parseRedirectingConstructorInvocation_named() {
+ super.test_parseRedirectingConstructorInvocation_named();
+ }
+
+ @failingTest
+ void test_parseRedirectingConstructorInvocation_unnamed() {
+ super.test_parseRedirectingConstructorInvocation_unnamed();
+ }
+
+ @failingTest
+ void test_parseRelationalExpression_as_functionType_noReturnType() {
+ super.test_parseRelationalExpression_as_functionType_noReturnType();
+ }
+
+ @failingTest
+ void test_parseRelationalExpression_as_functionType_returnType() {
+ super.test_parseRelationalExpression_as_functionType_returnType();
+ }
+
+ @failingTest
+ void test_parseRelationalExpression_as_generic() {
+ super.test_parseRelationalExpression_as_generic();
+ }
+
+ @failingTest
+ void test_parseRelationalExpression_as_simple() {
+ super.test_parseRelationalExpression_as_simple();
+ }
+
+ @failingTest
+ void test_parseRelationalExpression_as_simple_function() {
+ super.test_parseRelationalExpression_as_simple_function();
+ }
+
+ @failingTest
+ void test_parseRelationalExpression_is() {
+ super.test_parseRelationalExpression_is();
+ }
+
+ @failingTest
+ void test_parseRelationalExpression_isNot() {
+ super.test_parseRelationalExpression_isNot();
+ }
+
+ @failingTest
+ void test_parseRelationalExpression_normal() {
+ super.test_parseRelationalExpression_normal();
+ }
+
+ @failingTest
+ void test_parseRelationalExpression_super() {
+ super.test_parseRelationalExpression_super();
+ }
+
+ @failingTest
+ void test_parseRethrowExpression() {
+ super.test_parseRethrowExpression();
+ }
+
+ @failingTest
+ void test_parseShiftExpression_normal() {
+ super.test_parseShiftExpression_normal();
+ }
+
+ @failingTest
+ void test_parseShiftExpression_super() {
+ super.test_parseShiftExpression_super();
+ }
+
+ @failingTest
+ void test_parseSimpleIdentifier_builtInIdentifier() {
+ super.test_parseSimpleIdentifier_builtInIdentifier();
+ }
+
+ @failingTest
+ void test_parseSimpleIdentifier_normalIdentifier() {
+ super.test_parseSimpleIdentifier_normalIdentifier();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_adjacent() {
+ super.test_parseStringLiteral_adjacent();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_endsWithInterpolation() {
+ super.test_parseStringLiteral_endsWithInterpolation();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_interpolated() {
+ super.test_parseStringLiteral_interpolated();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_encodedSpace() {
+ super.test_parseStringLiteral_multiline_encodedSpace();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_endsWithInterpolation() {
+ super.test_parseStringLiteral_multiline_endsWithInterpolation();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_escapedBackslash() {
+ super.test_parseStringLiteral_multiline_escapedBackslash();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_escapedBackslash_raw() {
+ super.test_parseStringLiteral_multiline_escapedBackslash_raw();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_escapedEolMarker() {
+ super.test_parseStringLiteral_multiline_escapedEolMarker();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_escapedEolMarker_raw() {
+ super.test_parseStringLiteral_multiline_escapedEolMarker_raw();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_escapedSpaceAndEolMarker() {
+ super.test_parseStringLiteral_multiline_escapedSpaceAndEolMarker();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_escapedSpaceAndEolMarker_raw() {
+ super.test_parseStringLiteral_multiline_escapedSpaceAndEolMarker_raw();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_escapedTab() {
+ super.test_parseStringLiteral_multiline_escapedTab();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_escapedTab_raw() {
+ super.test_parseStringLiteral_multiline_escapedTab_raw();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_quoteAfterInterpolation() {
+ super.test_parseStringLiteral_multiline_quoteAfterInterpolation();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_startsWithInterpolation() {
+ super.test_parseStringLiteral_multiline_startsWithInterpolation();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_twoSpaces() {
+ super.test_parseStringLiteral_multiline_twoSpaces();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_twoSpaces_raw() {
+ super.test_parseStringLiteral_multiline_twoSpaces_raw();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_multiline_untrimmed() {
+ super.test_parseStringLiteral_multiline_untrimmed();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_quoteAfterInterpolation() {
+ super.test_parseStringLiteral_quoteAfterInterpolation();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_single() {
+ super.test_parseStringLiteral_single();
+ }
+
+ @failingTest
+ void test_parseStringLiteral_startsWithInterpolation() {
+ super.test_parseStringLiteral_startsWithInterpolation();
+ }
+
+ @failingTest
+ void test_parseSuperConstructorInvocation_named() {
+ super.test_parseSuperConstructorInvocation_named();
+ }
+
+ @failingTest
+ void test_parseSuperConstructorInvocation_unnamed() {
+ super.test_parseSuperConstructorInvocation_unnamed();
+ }
+
+ @failingTest
+ void test_parseSymbolLiteral_builtInIdentifier() {
+ super.test_parseSymbolLiteral_builtInIdentifier();
+ }
+
+ @failingTest
+ void test_parseSymbolLiteral_multiple() {
+ super.test_parseSymbolLiteral_multiple();
+ }
+
+ @failingTest
+ void test_parseSymbolLiteral_operator() {
+ super.test_parseSymbolLiteral_operator();
+ }
+
+ @failingTest
+ void test_parseSymbolLiteral_single() {
+ super.test_parseSymbolLiteral_single();
+ }
+
+ @failingTest
+ void test_parseSymbolLiteral_void() {
+ super.test_parseSymbolLiteral_void();
+ }
+
+ @failingTest
+ void test_parseThrowExpression() {
+ super.test_parseThrowExpression();
+ }
+
+ @failingTest
+ void test_parseThrowExpressionWithoutCascade() {
+ super.test_parseThrowExpressionWithoutCascade();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_decrement_normal() {
+ super.test_parseUnaryExpression_decrement_normal();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_decrement_super() {
+ super.test_parseUnaryExpression_decrement_super();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_decrement_super_propertyAccess() {
+ super.test_parseUnaryExpression_decrement_super_propertyAccess();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_decrement_super_withComment() {
+ super.test_parseUnaryExpression_decrement_super_withComment();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_increment_normal() {
+ super.test_parseUnaryExpression_increment_normal();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_increment_super_index() {
+ super.test_parseUnaryExpression_increment_super_index();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_increment_super_propertyAccess() {
+ super.test_parseUnaryExpression_increment_super_propertyAccess();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_minus_normal() {
+ super.test_parseUnaryExpression_minus_normal();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_minus_super() {
+ super.test_parseUnaryExpression_minus_super();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_not_normal() {
+ super.test_parseUnaryExpression_not_normal();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_not_super() {
+ super.test_parseUnaryExpression_not_super();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_tilda_normal() {
+ super.test_parseUnaryExpression_tilda_normal();
+ }
+
+ @failingTest
+ void test_parseUnaryExpression_tilda_super() {
+ super.test_parseUnaryExpression_tilda_super();
+ }
+}
+
+/**
+ * Implementation of [AbstractParserTestCase] specialized for testing building
+ * Analyzer AST using the fasta [Forest] API.
+ */
+class FastaParserTestCase extends Object
+ with ParserTestHelpers
+ implements AbstractParserTestCase {
+ // TODO(danrubel): Consider HybridFileSystem.
+ static final MemoryFileSystem fs =
+ new MemoryFileSystem(Uri.parse("org-dartlang-test:///"));
+
+ /// The custom URI used to locate the dill file in the MemoryFileSystem.
+ static final Uri sdkSummary = fs.currentDirectory.resolve("vm_platform.dill");
+
+ /// The in memory test code URI
+ static final Uri entryPoint = fs.currentDirectory.resolve("main.dart");
+
+ static ProcessedOptions options;
+
+ static KernelTarget kernelTarget;
+
+ @override
+ Expression parseAdditiveExpression(String code) {
+ ScannerResult scan = scanString(code);
+
+ return CompilerContext.runWithOptions(options, (CompilerContext c) {
+ KernelLibraryBuilder library = new KernelLibraryBuilder(
+ entryPoint,
+ entryPoint,
+ kernelTarget.loader,
+ null /* actualOrigin */,
+ null /* enclosingLibrary */,
+ );
+ List<KernelTypeVariableBuilder> typeVariableBuilders =
+ <KernelTypeVariableBuilder>[];
+ List<KernelFormalParameterBuilder> formalParameterBuilders =
+ <KernelFormalParameterBuilder>[];
+ KernelProcedureBuilder procedureBuilder = new KernelProcedureBuilder(
+ null /* metadata */,
+ Modifier.staticMask /* or Modifier.varMask */,
+ new BuiltTypeBuilder(new kernel.DynamicType()),
+ "analyzerTest",
+ typeVariableBuilders,
+ formalParameterBuilders,
+ kernel.ProcedureKind.Method,
+ library,
+ -1 /* charOffset */,
+ -1 /* charOpenParenOffset */,
+ -1 /* charEndOffset */);
+
+ TypeInferrerDisabled typeInferrer =
+ new TypeInferrerDisabled(new TypeSchemaEnvironment(
+ kernelTarget.loader.coreTypes,
+ kernelTarget.loader.hierarchy,
+ // TODO(danrubel): Enable strong mode.
+ false /* strong mode */,
+ ));
+
+ AnalyzerBodyBuilder builder = new AnalyzerBodyBuilder(
+ library,
+ procedureBuilder,
+ library.scope,
+ procedureBuilder.computeFormalParameterScope(library.scope),
+ kernelTarget.loader.hierarchy,
+ kernelTarget.loader.coreTypes,
+ null /* classBuilder */,
+ false /* isInstanceMember */,
+ null /* uri */,
+ typeInferrer,
+ )..constantContext = ConstantContext.none; // .inferred ?
+
+ Parser parser = new Parser(builder);
+ parser.parseExpression(parser.syntheticPreviousToken(scan.tokens));
+ return builder.pop();
+ });
+ }
+
+ void setUp() async {
+ // TODO(danrubel): Tear down once all tests in group have been run.
+ if (options != null) {
+ return;
+ }
+
+ // Read the dill file containing kernel platform summaries into memory.
+ List<int> sdkSummaryBytes = await new File.fromUri(
+ computePlatformBinariesLocation().resolve("vm_platform.dill"))
+ .readAsBytes();
+ fs.entityForUri(sdkSummary).writeAsBytesSync(sdkSummaryBytes);
+
+ final CompilerOptions optionBuilder = new CompilerOptions()
+ ..strongMode = false // TODO(danrubel): enable strong mode.
+ ..reportMessages = true
+ ..verbose = false
+ ..fileSystem = fs
+ ..sdkSummary = sdkSummary
+ ..onProblem = (FormattedMessage problem, Severity severity,
+ List<FormattedMessage> context) {
+ // TODO(danrubel): Capture problems and check against expectations.
+ print(problem.formatted);
+ };
+
+ options = new ProcessedOptions(optionBuilder, false, [entryPoint]);
+
+ UriTranslatorImpl uriTranslator = await options.getUriTranslator();
+
+ await CompilerContext.runWithOptions(options, (CompilerContext c) async {
+ DillTarget dillTarget = new DillTarget(
+ new Ticker(isVerbose: false), uriTranslator, options.target);
+
+ kernelTarget = new KernelTarget(fs, true, dillTarget, uriTranslator);
+
+ // Load the dill file containing platform code.
+ dillTarget.loader.read(Uri.parse('dart:core'), -1, fileUri: sdkSummary);
+ kernel.Component sdkComponent =
+ kernel.loadComponentFromBytes(sdkSummaryBytes);
+ dillTarget.loader
+ .appendLibraries(sdkComponent, byteCount: sdkSummaryBytes.length);
+ await dillTarget.buildOutlines();
+ await kernelTarget.buildOutlines();
+ kernelTarget.computeCoreTypes();
+ assert(kernelTarget.loader.coreTypes != null);
+ });
+ }
+
+ noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
+}
+
+class AnalyzerBodyBuilder extends BodyBuilder {
+ // TODO(danrubel): Hopefully BodyBuilder can be modified in a way that makes
+ // this class unnecessary.
+ AnalyzerBodyBuilder(
+ KernelLibraryBuilder library,
+ ModifierBuilder member,
+ Scope scope,
+ Scope formalParameterScope,
+ kernel.ClassHierarchy hierarchy,
+ kernel.CoreTypes coreTypes,
+ KernelClassBuilder classBuilder,
+ bool isInstanceMember,
+ Uri uri,
+ TypeInferrer typeInferrer)
+ : super(library, member, scope, formalParameterScope, hierarchy,
+ coreTypes, classBuilder, isInstanceMember, uri, typeInferrer);
+
+ AnalyzerForest analyzerForest = new AnalyzerForest();
+
+ @override
+ Forest<kernel.Expression, kernel.Statement, Token, kernel.Arguments>
+ get forest => analyzerForest;
+}
+
+// TODO(danrubel): Replace this with AstBuildingForest.
+class AnalyzerForest extends Forest<kernel.Expression, kernel.Statement, Token,
+ kernel.Arguments> {
+ @override
+ kernel.Arguments arguments(List<kernel.Expression> positional, Token token,
+ {List<kernel.DartType> types, List<kernel.NamedExpression> named}) {
+ return new kernel.Arguments(positional, types: types, named: named)
+ ..fileOffset = token?.charOffset;
+ }
+
+ @override
+ kernel.Expression literalInt(int value, Token location) {
+ // TODO(danrubel): return an Analyzer AST node.
+ return new kernel.IntLiteral(value);
+ }
+
+ noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
+}