e1404d8539
Report dedicated diagnostics for mixin classes that use a `with` clause and for mixin application classes that use multiple mixins, instead of folding both cases into `mixinClassDeclarationExtendsNotObject`. This makes the reported error match the actual invalid construct. A `mixin class` with a `with` clause does not have the same problem as a `mixin class` that extends a non-`Object` superclass, and a mixin application with multiple mixins is a separate restriction again. Update the error verifier, diagnostic definitions, messages, and fix status entries to use the new codes. Also guard `RemoveExtendsClause` so it only offers a fix when an actual extends clause is present, avoiding a bogus fix for diagnostics that are now reported on `with` clauses instead. Consolidate the diagnostic tests under a single mixin class declaration test file and update expectations to use the more precise error codes. The original impetus for this change was a crash in RemoveExtendsClause quick fix. Change-Id: I937276f37deb293ca1fecab3ff838ace45af2ec4 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/493865 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Paul Berry <paulberry@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>