0d8bb0e7e7
This commit builds on the work done in https://dart-review.googlesource.com/c/sdk/+/362481, which established the framework for sharing a class hierarchy between the analyzer and CFE to represent types. This commit introduces the following new classes: - `SharedDynamicType`, which represents the common interface between the `DynamicType` classes in the analyzer and the CFE. - `SharedInvalidType`, which represents the common interface between the `InvalidType` classes in the analyzer and the CFE. - `SharedVoidType`, which represents the common interface between the `VoidType` classes in the analyzer and the CFE. This allows 3 methods to be removed from the `FlowAnalysisTypeOperations` class: - `isDynamic`, which is no longer needed becasue `is SharedDynamicType` can be used instead. - `isError`, which is no longer needed because `is SharedInvalidType` can be used instead. - `isVoid`, which is no longer needed because `is SharedVoidType` can be used instead. In addition, `getDisplayString` is removed from the `TypeAnalyzerOperations` class, and replaced with a `getDisplayString` method in `SharedType`. This does not increase the API surface area of the analyzer, because the analyzer already has a `DartType.getDisplayString` method. Change-Id: Ib8d9d3a7699f3d1e8b9612ca9c8f4134fa19de77 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/365303 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Chloe Stefantsova <cstefantsova@google.com> Commit-Queue: Paul Berry <paulberry@google.com>