@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
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
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 from dart-lang/sdk#41728.
@2ZeroSix commented on Apr 30, 2020, 7:51 PM UTC:
using dart sdk shipped with flutter:
this code works differently only in debug build
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 objectsDart VM output:
This issue was moved by keertip from dart-lang/sdk#41728.