Document implications of tracking widget creation, and use of --no-track-widget-creation flag
- Lenguaje dominante
- Dart
- Estrellas
- 1.7k
- Forks
- 404
- Merge medio
- 6 d 17 h
- PR fusionados (30 d)
- 18
Descripción
*@2ZeroSix commented on Apr 30, 2020, 7:51 PM UTC:*
using dart sdk shipped with flutter:
```
Flutter (Channel master, 1.18.0-9.0.pre.74, on Mac OS X 10.15.3 19D76,
locale en-RU)
• Flutter version 1.18.0-9.0.pre.74 at /Users/iam/development/flutter
• Framework revision 0d452b8305 (42 minutes ago), 2020-04-30 11:20:14 -0700
• Engine revision 2db3276573
• Dart version 2.9.0 (build 2.9.0-3.0.dev 726d3c7725)
```
this code works differently only in debug build
```dart
import 'package:flutter/widgets.dart';
void main() {
final generatedListOfConst = [
...{
const SizedBox(),
const SizedBox(),
},
];
print(generatedListOfConst);
}
```
expected (dev_compiler, aot, ...): `[SizedBox]`
actual (Dart VM): `[SizedBox, SizedBox]`
same result for any other Flutter widget in place of `SizedBox`, but for some reason it does work as expected for other objects
```dart
class EmptyWidget extends StatelessWidget {
const EmptyWidget({Key key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container();
}
}
class Empty {
const Empty();
}
void main() {
final generatedListOfConstWidgets = [
...{
const EmptyWidget(),
const EmptyWidget(),
},
];
print(generatedListOfConstWidgets);
final generatedListOfConst = [
...{
const Empty(),
const Empty(),
},
];
print(generatedListOfConst);
final generatedListOfStr = [
...{
'a',
'a',
},
];
print(generatedListOfStr);
}
```
Dart VM output:
```
[EmptyWidget, EmptyWidget]
[Instance of 'Empty']
[a]
```
*This issue was moved by [keertip](https://github.com/keertip) from [dart-lang/sdk#41728](https://github.com/dart-lang/sdk/issues/41728).*
Guía de contribución
Evaluación
Este issue todavía no se ha evaluado.