Insert explicit type arguments where types could not be inferred. #1813
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change is a no-op.
The Dart compiler front-end (“CFE”) and static analyzer (“analyzer”) intend to fix a bug in which “could not infer” errors are not reported for top-level elements. (The same error is already reported in local elements.) Typically in such code, the developer has incorrectly expected inference to flow a certain way and infer a type which satisfies a bound, and the CFE and analyzer don’t report any error, so they submit their code. Here is a minified example:
A developer expects (reasonably) that inference would land on
C<num>
andList<num>
for the types ofc
and the List literal. However, details in the inference algorithms actually mean that inference cannot determine the implicit type ofC
, which needs to be a compile-time error.