phase3: nullfix.py batch script — bang/late/param-nullable

Automated null-safety fixes driven by dart analyze (no corruption):
- unchecked_use_of_nullable_value: insert '!' on receiver (property/method/[]/op)
- not_initialized field/var: mark 'late'
- missing_default_value_for_parameter: nullable param
Errors: 2374(peak) -> 907
This commit is contained in:
2026-07-25 18:13:01 +08:00
parent 8f3d3509ea
commit fce670664b
99 changed files with 1013 additions and 838 deletions

View File

@@ -24,7 +24,7 @@ class MobileCoupons extends StatefulWidget {
}
class MobileCouponsState extends State<MobileCoupons> {
List<Coupon> coupons;
late List<Coupon> coupons;
@override
Widget build(BuildContext context) {
@@ -97,7 +97,7 @@ class MobileCouponsState extends State<MobileCoupons> {
Container(
padding: EdgeInsets.only(right: 5.0),
child: coupon.store != null ?
Util.showImage('${coupon.store.picUrl}',
Util.showImage('${coupon.store!.picUrl}',
fit: BoxFit.fill,
width: 40.0,
) :
@@ -114,7 +114,7 @@ class MobileCouponsState extends State<MobileCoupons> {
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
coupon.store != null ? coupon.store.name : S.of(context).general_coupon,
coupon.store != null ? coupon.store!.name : S.of(context).general_coupon,
style: TextStyle(
fontSize: 20.0,
fontWeight: FontWeight.bold,
@@ -198,7 +198,7 @@ class MobileCouponsState extends State<MobileCoupons> {
),
Container(
child: Text(
coupon.minAmount > 0 ?
coupon.minAmount! > 0 ?
S.of(context).available_for_order_over_token(coupon.minAmount) :
S.of(context).no_restriction,
style: TextStyle(
@@ -236,7 +236,7 @@ class MobileCouponsState extends State<MobileCoupons> {
children: <Widget>[
Container(
child: Text(
coupon.expirationDate == null || coupon.expirationDate.length == 0 ?
coupon.expirationDate == null || coupon.expirationDate!.length == 0 ?
S.of(context).no_expiration :
S.of(context).expiration_date_token(coupon.expirationDate),
style: TextStyle(
@@ -261,7 +261,7 @@ class MobileCouponsState extends State<MobileCoupons> {
),
onPressed: () {
if (coupon.store != null) {
Routes.router.navigateTo(context, '/shop/${coupon.store.id}/na/na/na');
Routes.router.navigateTo(context, '/shop/${coupon.store!.id}/na/na/na');
} else {
Routes.router.navigateTo(context, '/businesses');
}