[analyzer] Represent `Null` as `NullTypeImpl`. This change introduces the class `NullTypeImpl` to represent the special type `Null`, which was previously represented as an ordinary `InterfaceType`. This class mirrors the CFE's `NullType` class. Adding it will facilitate further code sharing between the analyzer and the CFE, because it will allow code that's shared between the analyzer and CFE to use `is` tests to recognize the type `Null`. The new `NullTypeImpl` class always has a nullability suffix of `NullabilitySuffix.none`, so it is impossible for the type `Null?` to occur. This is a benign behavioral change; previously there were some circumstances in which the type `Null?` might occur in the analyzer, but the type `Null?` behaved the same as `Null` so there was no user-visible effect. This behavioral change brings the analyzer's treatment of `Null` into alignment with that of the CFE. This is the first step in a planned patch series. In follow-up CLs, I intend to: - Introduce a public-facing `NullType` for use by clients. - Change `NullTypeImpl` so that it no longer extends `InterfaceTypeImpl`. - Add a base class that is common to the analyzer and CFE `NullType` representations. Change-Id: I9cea84d8149347bffdee006d544af28c66eba429 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/396320 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> https://dart.googlesource.com/sdk/+/ac6d86c7378cbc708f785bd83932053b81749bfa
diff --git a/DEPS b/DEPS index ff8cb73..3e60737 100644 --- a/DEPS +++ b/DEPS
@@ -260,7 +260,7 @@ 'engine/src/flutter': Var('flutter_git') + '/mirrors/engine' + '@' + '3e96cebf0d1d7c18c97fd8729fb88296aac85f30', - 'engine/src/flutter/third_party/dart': Var('dart_git') + '/sdk' + '@' + 'd79fcdf4cd08a699d9ac4426962b19b4b5aef25a', + 'engine/src/flutter/third_party/dart': Var('dart_git') + '/sdk' + '@' + 'ac6d86c7378cbc708f785bd83932053b81749bfa', 'flutter': Var('flutter_git') + '/mirrors/flutter' + '@' + '8536b96ebb3eaaebdc34a56b862b33bbc2d79a75',
diff --git a/commits.json b/commits.json index 94e74cf..a2305f8 100644 --- a/commits.json +++ b/commits.json
@@ -1,5 +1,5 @@ { "engine/src/flutter":"3e96cebf0d1d7c18c97fd8729fb88296aac85f30", - "engine/src/flutter/third_party/dart":"d79fcdf4cd08a699d9ac4426962b19b4b5aef25a", + "engine/src/flutter/third_party/dart":"ac6d86c7378cbc708f785bd83932053b81749bfa", "flutter":"8536b96ebb3eaaebdc34a56b862b33bbc2d79a75" } \ No newline at end of file