Undo conversion from List() to [] and List(n) to List.filled(n, null) in comments.

Change-Id: I80b5e335f63e14a80db697e2ac3cbcf4c8d51d6b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175253
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
This commit is contained in:
Lasse Reichstein Holst Nielsen 2020-12-07 22:10:18 +00:00 committed by commit-bot@chromium.org
parent 9b128c5173
commit f0ed48196e
4 changed files with 12 additions and 12 deletions

View file

@ -1243,15 +1243,15 @@ class KernelTypeGraphBuilder extends ir.Visitor<TypeInformation> {
var commonElements = _elementMap.commonElements;
if (commonElements.isUnnamedListConstructor(constructor)) {
// We have `new List.filled(..., null)`.
// We have `new List(...)`.
if (arguments.positional.isEmpty && arguments.named.isEmpty) {
// We have `[]`.
// We have `new List()`.
return _inferrer.concreteTypes.putIfAbsent(
node,
() => _types.allocateList(_types.growableListType, node,
_analyzedMember, _types.nonNullEmpty(), 0));
} else {
// We have `new List.filled(len, null)`.
// We have `new List(len)`.
int length = _findLength(arguments);
return _inferrer.concreteTypes.putIfAbsent(
node,

View file

@ -994,7 +994,7 @@ class ClassUse {
/// For instance `A` in:
///
/// class A {}
/// main() => <A>[] is List<String>;
/// main() => new List<A>() is List<String>;
///
bool typeArgument = false;
@ -1003,7 +1003,7 @@ class ClassUse {
/// For instance `A` in:
///
/// class A {}
/// main() => <String>[] is List<A>;
/// main() => new List<String>() is List<A>;
///
bool checkedTypeArgument = false;

View file

@ -3816,12 +3816,12 @@ class KernelSsaGraphBuilder extends ir.Visitor {
return;
}
// Recognize `[]` and `List.filled(n, null)`.
// Recognize `List()` and `List(n)`.
if (_commonElements.isUnnamedListConstructor(function)) {
if (invocation.arguments.named.isEmpty) {
int argumentCount = invocation.arguments.positional.length;
if (argumentCount == 0) {
// `[]` takes no arguments, `JSArray.list()` takes a sentinel.
// `List()` takes no arguments, `JSArray.list()` takes a sentinel.
assert(arguments.length == 0 || arguments.length == 1,
'\narguments: $arguments\n');
_handleInvokeLegacyGrowableListFactoryConstructor(
@ -3936,14 +3936,14 @@ class KernelSsaGraphBuilder extends ir.Visitor {
stack.add(_setListRuntimeTypeInfoIfNeeded(pop(), type, sourceInformation));
}
/// Handle the legacy `<T>[]` constructor.
/// Handle the legacy `List<T>()` constructor.
void _handleInvokeLegacyGrowableListFactoryConstructor(
ir.StaticInvocation invocation,
ConstructorEntity function,
AbstractValue typeMask,
List<HInstruction> arguments,
SourceInformation sourceInformation) {
// `<T>[]` is essentially the same as `<T>[]`.
// `List<T>()` is essentially the same as `<T>[]`.
push(_buildLiteralList(<HInstruction>[]));
HInstruction allocation = pop();
var inferredType = globalInferenceResults.typeOfNewList(invocation);
@ -3956,7 +3956,7 @@ class KernelSsaGraphBuilder extends ir.Visitor {
_setListRuntimeTypeInfoIfNeeded(allocation, type, sourceInformation));
}
/// Handle the `JSArray<T>.list(length)` and legacy `List<T>.filled(length, null)`
/// Handle the `JSArray<T>.list(length)` and legacy `List<T>(length)`
/// constructors.
void _handleInvokeLegacyFixedListFactoryConstructor(
ir.StaticInvocation invocation,

View file

@ -139,7 +139,7 @@ original type is used at runtime, it may cause checked mode errors:
```dart
List/*<T>*/ makeList/*<T extends num>*/() {
return <num /*=T*/>[];
return new List<num /*=T*/>();
}
void main() {
@ -174,7 +174,7 @@ List<dynamic /*=S*/> foo/*<S>*/(/*=S*/ x) {
var l0 = <dynamic /*=S*/>[x];
// as above, but with a regular constructor.
var l1 = <dynamic /*=S*/>[];
var l1 = new List<dynamic /*=S*/>();
return l1;
}
```