@@ -820,12 +820,6 @@ abstract class KernelImpactRegistryMixin implements ImpactRegistry {
820
820
821
821
@override
822
822
void registerSwitchStatementNode (ir.SwitchStatement node) {
823
- // TODO(32557): Remove this when issue 32557 is fixed.
824
- ir.TreeNode firstCase;
825
- DartType firstCaseType;
826
- DiagnosticMessage error;
827
- List <DiagnosticMessage > infos = < DiagnosticMessage > [];
828
-
829
823
bool overridesEquals (InterfaceType type) {
830
824
if (type == commonElements.symbolImplementationType) {
831
825
// Treat symbol constants as if Symbol doesn't override `==`.
@@ -850,50 +844,23 @@ abstract class KernelImpactRegistryMixin implements ImpactRegistry {
850
844
ConstantValue value =
851
845
elementMap.getConstantValue (staticTypeContext, expression);
852
846
DartType type = value.getType (elementMap.commonElements);
853
- if (firstCaseType == null ) {
854
- firstCase = expression;
855
- firstCaseType = type;
856
-
857
- // We only report the bad type on the first class element. All others
858
- // get a "type differs" error.
859
- if (type == commonElements.doubleType) {
860
- reporter.reportErrorMessage (
861
- computeSourceSpanFromTreeNode (expression),
862
- MessageKind .SWITCH_CASE_VALUE_OVERRIDES_EQUALS ,
863
- {'type' : "double" });
864
- } else if (type == commonElements.functionType) {
865
- reporter.reportErrorMessage (computeSourceSpanFromTreeNode (node),
866
- MessageKind .SWITCH_CASE_FORBIDDEN , {'type' : "Function" });
867
- } else if (value.isObject &&
868
- type != commonElements.typeLiteralType &&
869
- overridesEquals (type)) {
870
- reporter.reportErrorMessage (
871
- computeSourceSpanFromTreeNode (firstCase),
872
- MessageKind .SWITCH_CASE_VALUE_OVERRIDES_EQUALS ,
873
- {'type' : typeToString (type)});
874
- }
875
- } else {
876
- if (type != firstCaseType) {
877
- if (error == null ) {
878
- error = reporter.createMessage (
879
- computeSourceSpanFromTreeNode (node),
880
- MessageKind .SWITCH_CASE_TYPES_NOT_EQUAL ,
881
- {'type' : typeToString (firstCaseType)});
882
- infos.add (reporter.createMessage (
883
- computeSourceSpanFromTreeNode (firstCase),
884
- MessageKind .SWITCH_CASE_TYPES_NOT_EQUAL_CASE ,
885
- {'type' : typeToString (firstCaseType)}));
886
- }
887
- infos.add (reporter.createMessage (
888
- computeSourceSpanFromTreeNode (expression),
889
- MessageKind .SWITCH_CASE_TYPES_NOT_EQUAL_CASE ,
890
- {'type' : typeToString (type)}));
891
- }
847
+ if (type == commonElements.doubleType) {
848
+ reporter.reportErrorMessage (
849
+ computeSourceSpanFromTreeNode (expression),
850
+ MessageKind .SWITCH_CASE_VALUE_OVERRIDES_EQUALS ,
851
+ {'type' : "double" });
852
+ } else if (type == commonElements.functionType) {
853
+ reporter.reportErrorMessage (computeSourceSpanFromTreeNode (node),
854
+ MessageKind .SWITCH_CASE_FORBIDDEN , {'type' : "Function" });
855
+ } else if (value.isObject &&
856
+ type != commonElements.typeLiteralType &&
857
+ overridesEquals (type)) {
858
+ reporter.reportErrorMessage (
859
+ computeSourceSpanFromTreeNode (expression),
860
+ MessageKind .SWITCH_CASE_VALUE_OVERRIDES_EQUALS ,
861
+ {'type' : typeToString (type)});
892
862
}
893
863
}
894
864
}
895
- if (error != null ) {
896
- reporter.reportError (error, infos);
897
- }
898
865
}
899
866
}
0 commit comments