Make BodyBuilder.handleCatchBlock use FormalParameters as catchParameters.
Change-Id: Ib3523faa2a7fa122e56ecef5b9ed6c42a1a8b90d
Reviewed-on: https://dart-review.googlesource.com/56604
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
diff --git a/pkg/analyzer/lib/src/fasta/ast_building_factory.dart b/pkg/analyzer/lib/src/fasta/ast_building_factory.dart
index ac9b5f7..94cbe97 100644
--- a/pkg/analyzer/lib/src/fasta/ast_building_factory.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_building_factory.dart
@@ -226,43 +226,6 @@
@override
int getLabelOffset(Label label) => label.offset;
- @override
- int getOptionalParameterCount(FormalParameterList parameters) {
- int count = 0;
- for (FormalParameter parameter in parameters.parameters) {
- if (!parameter.isRequired) {
- count++;
- }
- }
- return count;
- }
-
- @override
- FormalParameter getRequiredParameter(
- FormalParameterList parameters, int index) {
- int count = 0;
- for (FormalParameter parameter in parameters.parameters) {
- if (parameter.isRequired) {
- if (count == index) {
- return parameter;
- }
- count++;
- }
- }
- throw new IndexError(index, parameters);
- }
-
- @override
- int getRequiredParameterCount(FormalParameterList parameters) {
- int count = 0;
- for (FormalParameter parameter in parameters.parameters) {
- if (parameter.isRequired) {
- count++;
- }
- }
- return count;
- }
-
/// Return the semicolon at the end of the given [statement], or `null` if the
/// statement is not terminated by a semicolon.
Token getSemicolon(Statement statement) {
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index dd5cc3d..b0297d0 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -2372,18 +2372,19 @@
if (catchKeyword != null) {
exitLocalScope();
}
- Object catchParameters = popIfNotNull(catchKeyword);
+ FormalParameters<Expression, Statement, Arguments> catchParameters =
+ popIfNotNull(catchKeyword);
Object type = popIfNotNull(onKeyword);
Object exception;
Object stackTrace;
if (catchParameters != null) {
- int requiredCount = forest.getRequiredParameterCount(catchParameters);
- int optionalCount = forest.getOptionalParameterCount(catchParameters);
- if ((requiredCount == 1 || requiredCount == 2) && optionalCount == 0) {
- exception = forest.getRequiredParameter(catchParameters, 0);
+ int requiredCount = catchParameters.required.length;
+ if ((requiredCount == 1 || requiredCount == 2) &&
+ catchParameters.optional == null) {
+ exception = catchParameters.required[0];
forest.setParameterType(exception, type);
if (requiredCount == 2) {
- stackTrace = forest.getRequiredParameter(catchParameters, 1);
+ stackTrace = catchParameters.required[1];
forest.setParameterType(
stackTrace, coreTypes.stackTraceClass.rawType);
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/fangorn.dart b/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
index ddf893d..3acd9df 100644
--- a/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
@@ -60,8 +60,6 @@
KernelTypeUseGenerator,
KernelVariableUseGenerator;
-import 'body_builder.dart' show FormalParameters, OptionalFormals;
-
import 'kernel_shadow_ast.dart'
show
ShadowArguments,
@@ -528,29 +526,6 @@
}
@override
- int getOptionalParameterCount(
- FormalParameters<Expression, Statement, Arguments> parameters) {
- OptionalFormals optional = parameters.optional;
- if (optional == null) {
- return 0;
- }
- return optional.formals.length;
- }
-
- @override
- Object getRequiredParameter(
- FormalParameters<Expression, Statement, Arguments> parameters,
- int index) {
- return parameters.required[index];
- }
-
- @override
- int getRequiredParameterCount(
- FormalParameters<Expression, Statement, Arguments> parameters) {
- return parameters.required.length;
- }
-
- @override
Expression getExpressionFromExpressionStatement(Statement statement) {
return (statement as ExpressionStatement).expression;
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/forest.dart b/pkg/front_end/lib/src/fasta/kernel/forest.dart
index 39e3b44..8509c30 100644
--- a/pkg/front_end/lib/src/fasta/kernel/forest.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/forest.dart
@@ -317,16 +317,6 @@
/// Return the offset of the given [label].
int getLabelOffset(covariant label);
- /// Return the number of optional parameters in the list of [parameters].
- int getOptionalParameterCount(covariant parameters);
-
- /// Return the required parameter from the list of [parameters] at the given
- /// [index].
- Object getRequiredParameter(covariant parameters, int index);
-
- /// Return the number of required parameters in the list of [parameters].
- int getRequiredParameterCount(covariant parameters);
-
bool isBlock(Object node);
/// Return `true` if the given [statement] is the representation of an empty