Paul Berry
Paul Berry
Migration tool fails to detect that a method lacking a `return` statement implicitly returns `null`.
This came up during @vsmenon's migration of `samples-dev/swarm`. See https://dart-review.googlesource.com/c/sdk/+/253702/comments/bffd8796_22f80104.
This came up in @vsmenon's migration of `samples-dev/swarm`. See https://dart-review.googlesource.com/c/sdk/+/253702/comments/dcd71981_96c7c77c.
This came up during @vsmenon's migration of `samples-dev/swarm`. See https://dart-review.googlesource.com/c/sdk/+/253702/comments/c718f352_4a44a875.
I've just been looking at several examples in our internal codebase where the output of the migration tool gets flagged for additional review due to the `invalid_null_aware_operator` warning. There seem...
An internal customer ran into a situation like this: Original code (pre-null-safety): ```dart f(Map m, String k) { var s = ''; if (m.containsKey(k)) { s = m[k]; ... }...
During my work on #2020, I've discovered that the following flow control behaviours only take effect if the expression `e` is a reference to a local variable: - ~~Control flow...
# Change If a concrete class implements an interface containing a name that's private to a different library, any attempt to invoke that name will result in an exception getting...
The [patterns spec](https://github.com/dart-lang/language/blob/master/working/0546-patterns/patterns-feature-specification.md) makes the following grammar definitions: ``` pattern ::= logicalOrPattern logicalOrPattern ::= logicalAndPattern ( '|' logicalOrPattern )? logicalAndPattern ::= relationalPattern ( '&' logicalAndPattern )? relationalPattern ::= ( equalityOperator...
@scheglov pointed out that it would be nice if this worked: ```dart double calculateArea(Shape shape) { return switch (shape) { case Square() => shape.length * shape.length; case Circle() => math.pi...
The current [records spec](https://github.com/dart-lang/language/blob/master/working/0546-patterns/records-feature-specification.md#record-type-annotations) has this grammar for record types: ``` recordType ::= '(' recordTypeFields ',' recordTypeNamedFields ')' | '(' recordTypeFields ','? ')' | '(' recordTypeNamedFields? ')' recordTypeFields ::= recordTypeField...