-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
P2A bug or feature request we're likely to work onA bug or feature request we're likely to work onlegacy-area-analyzerUse area-devexp instead.Use area-devexp instead.type-bugIncorrect behavior (everything from a crash to more subtle misbehavior)Incorrect behavior (everything from a crash to more subtle misbehavior)
Milestone
Description
If a parameterized type A
is used somewhere in a type bound with no type arguments, it is currently treated as an error in strong mode unless the type parameter to A
has no bound. This should be relaxed to also allow this in any case where the bound on the type parameter to A
does not reference any other type parameters to A
. Examples:
class A<T> {}
/// Already allowed, A is treated as A<dynamic>
class B<T extends A> {}
class C<T extends A<int>> {}
/// Currently disallowed, should be allowed, C is treated as C<A<int>>
class D<T extends C> {}
/// Currently disallowed, should be allowed, List<C> is treated as List<C<A<int>>
class E<T extends List<C>> {}
Metadata
Metadata
Assignees
Labels
P2A bug or feature request we're likely to work onA bug or feature request we're likely to work onlegacy-area-analyzerUse area-devexp instead.Use area-devexp instead.type-bugIncorrect behavior (everything from a crash to more subtle misbehavior)Incorrect behavior (everything from a crash to more subtle misbehavior)