2bbb2f3c1f
Explicit casts make it easier to confidently navigate the code base and apply refactorings which tighten types. This change exposes a number of places where types can be tightened, but only the most trivial were applied. For most places I added the explicit cast that would have happened anyway and so behavior shouldn't be changing. - Add the configuration which disallows implicit casts in the analyzer. - Add explicit casts in almost all instances. - Where the implicit cast was due to a local variable type on the left, change it to a `var` so the type is not repeated. - In a few places add argument types where they were already applied on the parent type, and the subclass was unnecessarily loosening argument types to dynamic. - In a few places where a method was defined with an implicit dynamic return but had an obvious and consistent return type, annotate the method instead of casting after calls to that method. Change-Id: I90e11b1cc08ce69967ea5705b507d5758a8f668f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103381 Reviewed-by: Nicholas Shahan <nshahan@google.com>