Skip to content

Commit 37b7234

Browse files
authored
Add maybeOf for all the cases where of returns nullable. (#114120)
1 parent b20b7d9 commit 37b7234

File tree

73 files changed

+836
-308
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+836
-308
lines changed

dev/integration_tests/flutter_gallery/lib/demo/material/expansion_panels_demo.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,8 @@ class _ExpansionPanelsDemoState extends State<ExpansionPanelsDemo> {
210210
builder: (BuildContext context) {
211211
return CollapsibleBody(
212212
margin: const EdgeInsets.symmetric(horizontal: 16.0),
213-
onSave: () { Form.of(context)!.save(); close(); },
214-
onCancel: () { Form.of(context)!.reset(); close(); },
213+
onSave: () { Form.of(context).save(); close(); },
214+
onCancel: () { Form.of(context).reset(); close(); },
215215
child: Padding(
216216
padding: const EdgeInsets.symmetric(horizontal: 16.0),
217217
child: TextFormField(
@@ -244,8 +244,8 @@ class _ExpansionPanelsDemoState extends State<ExpansionPanelsDemo> {
244244
child: Builder(
245245
builder: (BuildContext context) {
246246
return CollapsibleBody(
247-
onSave: () { Form.of(context)!.save(); close(); },
248-
onCancel: () { Form.of(context)!.reset(); close(); },
247+
onSave: () { Form.of(context).save(); close(); },
248+
onCancel: () { Form.of(context).reset(); close(); },
249249
child: FormField<Location>(
250250
initialValue: item.value,
251251
onSaved: (Location? result) { item.value = result; },
@@ -298,8 +298,8 @@ class _ExpansionPanelsDemoState extends State<ExpansionPanelsDemo> {
298298
child: Builder(
299299
builder: (BuildContext context) {
300300
return CollapsibleBody(
301-
onSave: () { Form.of(context)!.save(); close(); },
302-
onCancel: () { Form.of(context)!.reset(); close(); },
301+
onSave: () { Form.of(context).save(); close(); },
302+
onCancel: () { Form.of(context).reset(); close(); },
303303
child: FormField<double>(
304304
initialValue: item.value,
305305
onSaved: (double? value) { item.value = value; },

dev/integration_tests/flutter_gallery/lib/demo/material/page_selector_demo.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ class _PageSelector extends StatelessWidget {
1212
final List<Icon>? icons;
1313

1414
void _handleArrowButtonPress(BuildContext context, int delta) {
15-
final TabController controller = DefaultTabController.of(context)!;
15+
final TabController controller = DefaultTabController.of(context);
1616
if (!controller.indexIsChanging) {
1717
controller.animateTo((controller.index + delta).clamp(0, icons!.length - 1));
1818
}
1919
}
2020

2121
@override
2222
Widget build(BuildContext context) {
23-
final TabController? controller = DefaultTabController.of(context);
23+
final TabController? controller = DefaultTabController.maybeOf(context);
2424
final Color color = Theme.of(context).colorScheme.secondary;
2525
return SafeArea(
2626
top: false,

dev/integration_tests/flutter_gallery/lib/gallery/demo.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class TabbedComponentDemoScaffold extends StatefulWidget {
6363

6464
class _TabbedComponentDemoScaffoldState extends State<TabbedComponentDemoScaffold> {
6565
void _showExampleCode(BuildContext context) {
66-
final String? tag = widget.demos![DefaultTabController.of(context)!.index].exampleCodeTag;
66+
final String? tag = widget.demos![DefaultTabController.of(context).index].exampleCodeTag;
6767
if (tag != null) {
6868
Navigator.push(context, MaterialPageRoute<FullScreenCodeDialog>(
6969
builder: (BuildContext context) => FullScreenCodeDialog(exampleCodeTag: tag)
@@ -72,7 +72,7 @@ class _TabbedComponentDemoScaffoldState extends State<TabbedComponentDemoScaffol
7272
}
7373

7474
Future<void> _showApiDocumentation(BuildContext context) async {
75-
final String? url = widget.demos![DefaultTabController.of(context)!.index].documentationUrl;
75+
final String? url = widget.demos![DefaultTabController.of(context).index].documentationUrl;
7676
if (url == null) {
7777
return;
7878
}

dev/manual_tests/lib/material_arc.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ class _AnimationDemoState extends State<AnimationDemo> with TickerProviderStateM
451451
return FloatingActionButton(
452452
child: const Icon(Icons.refresh),
453453
onPressed: () {
454-
_play(_allDemos[DefaultTabController.of(context)!.index]);
454+
_play(_allDemos[DefaultTabController.of(context).index]);
455455
},
456456
);
457457
},

dev/manual_tests/lib/overlay_geometry.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -172,8 +172,8 @@ class OverlayGeometryAppState extends State<OverlayGeometryApp> {
172172
markers[MarkerType.topLeft] = box!.localToGlobal(Offset.zero);
173173
final Size size = box.size;
174174
markers[MarkerType.bottomRight] = box.localToGlobal(Offset(size.width, size.height));
175-
final ScrollableState? scrollable = Scrollable.of(target.currentContext!);
176-
markersScrollOffset = scrollable!.position.pixels;
175+
final ScrollableState scrollable = Scrollable.of(target.currentContext!);
176+
markersScrollOffset = scrollable.position.pixels;
177177
});
178178
}
179179

examples/api/lib/cupertino/text_form_field_row/cupertino_text_form_field_row.1.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class FromSectionExample extends StatelessWidget {
3434
child: Form(
3535
autovalidateMode: AutovalidateMode.always,
3636
onChanged: () {
37-
Form.of(primaryFocus!.context!)?.save();
37+
Form.maybeOf(primaryFocus!.context!)?.save();
3838
},
3939
child: CupertinoFormSection.insetGrouped(
4040
header: const Text('SECTION 1'),

examples/api/lib/material/tab_controller/tab_controller.1.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class MyStatelessWidget extends StatelessWidget {
3838
// The Builder widget is used to have a different BuildContext to access
3939
// closest DefaultTabController.
4040
child: Builder(builder: (BuildContext context) {
41-
final TabController tabController = DefaultTabController.of(context)!;
41+
final TabController tabController = DefaultTabController.of(context);
4242
tabController.addListener(() {
4343
if (!tabController.indexIsChanging) {
4444
// Your code goes here.

examples/api/lib/material/text_form_field/text_form_field.1.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class _MyStatefulWidgetState extends State<MyStatefulWidget> {
4444
child: Form(
4545
autovalidateMode: AutovalidateMode.always,
4646
onChanged: () {
47-
Form.of(primaryFocus!.context!)!.save();
47+
Form.of(primaryFocus!.context!).save();
4848
},
4949
child: Wrap(
5050
children: List<Widget>.generate(5, (int index) {

packages/flutter/lib/src/cupertino/page_scaffold.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class CupertinoPageScaffold extends StatefulWidget {
9090
class _CupertinoPageScaffoldState extends State<CupertinoPageScaffold> {
9191

9292
void _handleStatusBarTap() {
93-
final ScrollController? primaryScrollController = PrimaryScrollController.of(context);
93+
final ScrollController? primaryScrollController = PrimaryScrollController.maybeOf(context);
9494
// Only act on the scroll controller if it has any attached scroll positions.
9595
if (primaryScrollController != null && primaryScrollController.hasClients) {
9696
primaryScrollController.animateTo(

packages/flutter/lib/src/material/about.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ class _PackagesViewState extends State<_PackagesView> {
602602
}
603603
final String packageName = data.packages[widget.selectedId.value ?? 0];
604604
final List<int> bindings = data.packageLicenseBindings[packageName]!;
605-
_MasterDetailFlow.of(context)!.setInitialDetailPage(
605+
_MasterDetailFlow.of(context).setInitialDetailPage(
606606
_DetailArguments(
607607
packageName,
608608
bindings.map((int i) => data.licenses[i]).toList(growable: false),
@@ -632,7 +632,7 @@ class _PackagesViewState extends State<_PackagesView> {
632632
numberLicenses: bindings.length,
633633
onTap: () {
634634
widget.selectedId.value = packageIndex;
635-
_MasterDetailFlow.of(context)!.openDetailPage(_DetailArguments(
635+
_MasterDetailFlow.of(context).openDetailPage(_DetailArguments(
636636
packageName,
637637
bindings.map((int i) => data.licenses[i]).toList(growable: false),
638638
));
@@ -1073,7 +1073,7 @@ class _MasterDetailFlow extends StatefulWidget {
10731073
// ```dart
10741074
// _MasterDetailFlow.of(context).openDetailPage(arguments);
10751075
// ```
1076-
static _MasterDetailFlowProxy? of(BuildContext context) {
1076+
static _MasterDetailFlowProxy of(BuildContext context) {
10771077
_PageOpener? pageOpener = context.findAncestorStateOfType<_MasterDetailScaffoldState>();
10781078
pageOpener ??= context.findAncestorStateOfType<_MasterDetailFlowState>();
10791079
assert(() {
@@ -1086,7 +1086,7 @@ class _MasterDetailFlow extends StatefulWidget {
10861086
}
10871087
return true;
10881088
}());
1089-
return pageOpener != null ? _MasterDetailFlowProxy._(pageOpener) : null;
1089+
return _MasterDetailFlowProxy._(pageOpener!);
10901090
}
10911091
}
10921092

@@ -1339,13 +1339,13 @@ class _MasterDetailScaffoldState extends State<_MasterDetailScaffold>
13391339
@override
13401340
void openDetailPage(Object arguments) {
13411341
SchedulerBinding.instance.addPostFrameCallback((_) => _detailArguments.value = arguments);
1342-
_MasterDetailFlow.of(context)!.openDetailPage(arguments);
1342+
_MasterDetailFlow.of(context).openDetailPage(arguments);
13431343
}
13441344

13451345
@override
13461346
void setInitialDetailPage(Object arguments) {
13471347
SchedulerBinding.instance.addPostFrameCallback((_) => _detailArguments.value = arguments);
1348-
_MasterDetailFlow.of(context)!.setInitialDetailPage(arguments);
1348+
_MasterDetailFlow.of(context).setInitialDetailPage(arguments);
13491349
}
13501350

13511351
@override

0 commit comments

Comments
 (0)