flutter / flutter/devtools

Document implications of tracking widget creation, and use of --no-track-widget-creation flag

Abierto
#2,171 17 comentarios 0 reacciones 0 asignados Ver en GitHub
cost: high P3 screen: inspector
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

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.