From 883140772259d7bbdf62f896cf93b567f8fca780 Mon Sep 17 00:00:00 2001 From: Hixie Date: Thu, 5 Nov 2015 15:13:14 -0800 Subject: [PATCH] Better asserts for MaterialApp and Navigator - runApp(new MaterialApp()) was crashing long after the constructor. Now it asserts in a more useful location. - remove the default name for NamedRouteSettings. It was unused anyway. --- packages/flutter/lib/src/material/material_app.dart | 7 +++++-- packages/flutter/lib/src/widgets/navigator.dart | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/flutter/lib/src/material/material_app.dart b/packages/flutter/lib/src/material/material_app.dart index 01be12943e..70a93fa9fc 100644 --- a/packages/flutter/lib/src/material/material_app.dart +++ b/packages/flutter/lib/src/material/material_app.dart @@ -36,9 +36,12 @@ class MaterialApp extends StatefulComponent { Key key, this.title, this.theme, - this.routes, + this.routes: const {}, this.onGenerateRoute - }) : super(key: key); + }) : super(key: key) { + assert(routes != null); + assert(routes.containsKey(Navigator.defaultRouteName) || onGenerateRoute != null); + } final String title; final ThemeData theme; diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart index 22a2cc38a6..36145011ce 100644 --- a/packages/flutter/lib/src/widgets/navigator.dart +++ b/packages/flutter/lib/src/widgets/navigator.dart @@ -23,7 +23,7 @@ abstract class Route { } class NamedRouteSettings { - const NamedRouteSettings({ this.name: '', this.mostValuableKeys }); + const NamedRouteSettings({ this.name, this.mostValuableKeys }); final String name; final Set mostValuableKeys; @@ -92,6 +92,7 @@ class NavigatorState extends State { } void pushNamed(String name, { Set mostValuableKeys }) { + assert(name != null); NamedRouteSettings settings = new NamedRouteSettings( name: name, mostValuableKeys: mostValuableKeys