diff --git a/pkg/analyzer/test/generated/parser_forest_test.dart b/pkg/analyzer/test/generated/parser_forest_test.dart
index e428f1c..ed65757 100644
--- a/pkg/analyzer/test/generated/parser_forest_test.dart
+++ b/pkg/analyzer/test/generated/parser_forest_test.dart
@@ -2834,11 +2834,6 @@
   }
 
   @failingTest
-  void test_parseExpression_assign_compound() {
-    super.test_parseExpression_assign_compound();
-  }
-
-  @failingTest
   void test_parseExpression_comparison() {
     super.test_parseExpression_comparison();
   }
@@ -5219,6 +5214,7 @@
 
   @failingTest
   void test_parseStatement_singleLabel() {
+    // Failing because the label doesn't know it's in a declaration context.
     super.test_parseStatement_singleLabel();
   }
 
@@ -5973,21 +5969,11 @@
   }
 
   @failingTest
-  void test_parseFunctionDeclaration_functionWithTypeParameters_comment() {
-    super.test_parseFunctionDeclaration_functionWithTypeParameters_comment();
-  }
-
-  @failingTest
   void test_parseFunctionDeclaration_getter() {
     super.test_parseFunctionDeclaration_getter();
   }
 
   @failingTest
-  void test_parseFunctionDeclaration_getter_generic_comment_returnType() {
-    super.test_parseFunctionDeclaration_getter_generic_comment_returnType();
-  }
-
-  @failingTest
   void test_parseFunctionDeclaration_metadata() {
     super.test_parseFunctionDeclaration_metadata();
   }
diff --git a/pkg/analyzer/test/src/fasta/body_builder_test_helper.dart b/pkg/analyzer/test/src/fasta/body_builder_test_helper.dart
index 827a00a..64569c3 100644
--- a/pkg/analyzer/test/src/fasta/body_builder_test_helper.dart
+++ b/pkg/analyzer/test/src/fasta/body_builder_test_helper.dart
@@ -167,12 +167,19 @@
   /// finished parsing, or `null` (the default) if EOF is expected.
   int expectedEndOffset;
 
+  @override
+  void set enableGenericMethodComments(_) {
+    // Ignored.
+  }
+
   FastaBodyBuilderTestCase(this.resolveTypes);
 
   analyzer.Parser get parser => new ParserProxy(this);
 
   TypeProvider get typeProvider => CompilerTestContext.current._typeProvider;
 
+  bool get usingFastaParser => true;
+
   @override
   void assertNoErrors() {
     // TODO(brianwilkerson) Implement this.
@@ -188,6 +195,11 @@
     // TODO(brianwilkerson) Implement this.
   }
 
+  @override
+  ExpectedError expectedError(ErrorCode code, int offset, int length) {
+    return new ExpectedError(code, offset, length);
+  }
+
   noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
 
   @override
