9ae942b083
For the cases of implicit bounds like `<T>` the default value should be `dynamic` when instantiating and no type parameter is provided. This change fixes this cases. For explicit bounds like `<T extends Object?>` or `<T extends Object*>` the default values should be `Object?` or `Object*`. This change breaks these cases by defaulting to `dynamic`. Filed: https://github.com/dart-lang/sdk/issues/41539 I believe this is the correct trade off right now because the implicit bounds like `<T>` are more likely to appear compared to `<T extends Object?>` or `<T extends Object*>`. Fixes: https://github.com/dart-lang/sdk/issues/41301 Change-Id: I53a22cf9de2d200f628f3ac0f6b0a6b1ab9ba3fb Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/143442 Reviewed-by: Sigmund Cherem <sigmund@google.com> Reviewed-by: Mark Zhou <markzipan@google.com> Commit-Queue: Nicholas Shahan <nshahan@google.com>