Fix for crash if MixinDeclaration has a const constructor.
R=brianwilkerson@google.com
Bug: https://buganizer.corp.google.com/issues/124304191
Change-Id: I78f07338c3ac4c254986fb2b19a00bb5fd4201b7
Reviewed-on: https://dart-review.googlesource.com/c/92860
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
index 453c439..024eca2 100644
--- a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
+++ b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
@@ -103,7 +103,7 @@
void visitConstructorDeclaration(ConstructorDeclaration node) {
if (node.constKeyword != null) {
_validateConstructorInitializers(node);
- _validateFieldInitializers(node.parent as ClassDeclaration, node);
+ _validateFieldInitializers(node.parent, node);
}
_validateDefaultValues(node.parameters);
super.visitConstructorDeclaration(node);
@@ -548,8 +548,8 @@
///
/// @param classDeclaration the class which should be validated
/// @param errorSite the site at which errors should be reported.
- void _validateFieldInitializers(
- ClassDeclaration classDeclaration, ConstructorDeclaration errorSite) {
+ void _validateFieldInitializers(ClassOrMixinDeclaration classDeclaration,
+ ConstructorDeclaration errorSite) {
NodeList<ClassMember> members = classDeclaration.members;
for (ClassMember member in members) {
if (member is FieldDeclaration && !member.isStatic) {
diff --git a/tests/language_2/language_2_analyzer.status b/tests/language_2/language_2_analyzer.status
index 027ba25..2ceb689 100644
--- a/tests/language_2/language_2_analyzer.status
+++ b/tests/language_2/language_2_analyzer.status
@@ -69,7 +69,6 @@
issue34498_test: MissingCompileTimeError # Issue 34500
large_class_declaration_test: Slow, Pass
malformed2_test: Pass, MissingCompileTimeError # Flaky: issue 31056.
-mixin_declaration/mixin_declaration_factory_test/02: Crash # Issue 34809
mixin_method_override_test/01: MissingCompileTimeError
mixin_super_2_test: CompileTimeError
mixin_super_use_test: CompileTimeError