title: Cannot pass `arguments` through `onGenerateRoute()` in `null-safety` version of flutter
body: <h2>What am I trying to do?</h2>
  <p>As usual, I am trying to sending data from one screen to another <code>onGenerateRoute()</code> but I screen does not accept arguments type and showing error <strong>The argument type 'Object?' can't be assigned to the parameter type 'Map&lt;String, dynamic&gt;'.</strong></p>
  <p>I also tried to change the argument type <code>Object?</code> on the receiver screen but now I am not able to extract data from <code>Object</code> to <code>Map&lt;String, dynamic&gt;</code>. I think both are the same data type but the null-safety version is treated differently. I think this is a bug.</p>
  <p>I have seen <a href="https://flutter.dev/docs/cookbook/navigation/navigate-with-arguments#interactive-example" rel="nofollow noreferrer">flutter official documentation for navigate-with-arguments</a> and when I switched to null-safety in <strong>Interactive example</strong> section then it also showing error. See this screenshot or try it yourself.</p>
  <p><img src="https://user-images.githubusercontent.com/35359840/113009085-447b0680-9195-11eb-875c-22e25fb106ad.png" alt="Screenshot 2021-03-30 at 20 13 56" /></p>
  <p>It's working properly in the non-null-safety version of flutter</p>
  <p>Here's the snippet</p>
  <h3>RouteGenerator Class</h3>
  <pre><code>class RouteGenerator {
    static Route&lt;dynamic&gt; generateRoute(RouteSettings settings) {
      // Getting arguments passed while calling Navigator.pushNamed
      final args = settings.arguments;
      switch (settings.name) {
        case HomeScreen.routeName:
          return MaterialPageRoute(
            builder: (context) =&gt; HomeScreen(),
          );
        case LoginScreen.routeName:
          return MaterialPageRoute(
            builder: (context) =&gt; LoginScreen(),
          );
        case VerifyFirebaseOtpScreen.routeName:
          return MaterialPageRoute(
            builder: (context) =&gt; VerifyFirebaseOtpScreen(data: args), // Here is the error: The argument type 'Object?' can't be assigned to the parameter type 'Map&lt;String, dynamic&gt;'.
          );
        case AboutScreen.routeName:
          return MaterialPageRoute(
            builder: (context) =&gt; AboutScreen(),
          );
        default:
          return MaterialPageRoute(
            builder: (context) =&gt; Scaffold(
              body: SafeArea(
                child: Center(
                  child: Text('No route defined for ${settings.name}'),
                ),
              ),
            ),
          );
      }
    }
  }
  </code></pre>
  <h3>VerifyFirebaseOtpScreen</h3>
  <pre><code>class VerifyFirebaseOtpScreen extends StatelessWidget {
    static const String routeName = '/verify_firebase_otp_screen';
  
    final Map&lt;String, dynamic&gt; data;
  
    const VerifyFirebaseOtpScreen({
      Key? key,
      required this.data,
    }) : super(key: key);
  
    @override
    Widget build(BuildContext context) {
      return GestureDetector(
        onTap: () {
          FocusScope.of(context).unfocus();
        },
        child: Scaffold(
          body: Center(
            child: SingleChildScrollView(
              padding: const EdgeInsets.all(8.0),
              child: Container(
                width: double.infinity,
                child: VerifyFirebaseOtpScreenDataSection(
                  mobile: '${data['mobile']}',
                ),
              ),
            ),
          ),
        ),
      );
    }
  }
  
  </code></pre>
  
    Logs
  <pre><code>abhishekkumar@Abhisheks-MacBook-Air ~ % flutter doctor -v
  [✓] Flutter (Channel beta, 2.1.0-12.2.pre, on macOS 11.2.3 20D91 darwin-x64, locale en-IN)
      • Flutter version 2.1.0-12.2.pre at /Users/abhishekkumar/flutter
      • Framework revision 5bedb7b1d5 (13 days ago), 2021-03-17 17:06:30 -0700
      • Engine revision 711ab3fda0
      • Dart version 2.13.0 (build 2.13.0-116.0.dev)
  
  [✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
      • Android SDK at /Users/abhishekkumar/Library/Android/sdk
      • Platform android-30, build-tools 30.0.2
      • ANDROID_HOME = /Users/abhishekkumar/Library/Android/sdk
      • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
      • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
      • All Android licenses accepted.
  
  [✓] Xcode - develop for iOS and macOS
      • Xcode at /Applications/Xcode.app/Contents/Developer
      • Xcode 12.4, Build version 12D4e
      • CocoaPods version 1.10.1
  
  [✓] Chrome - develop for the web
      • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
  
  [✓] Android Studio (version 4.1)
      • Android Studio at /Applications/Android Studio.app/Contents
      • Flutter plugin can be installed from:
         https://plugins.jetbrains.com/plugin/9212-flutter
      • Dart plugin can be installed from:
         https://plugins.jetbrains.com/plugin/6351-dart
      • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
  
  [✓] VS Code (version 1.51.1)
      • VS Code at /Applications/Visual Studio Code.app/Contents
      • Flutter extension version 3.17.0
  
  [✓] Connected device (3 available)
      • iPhone SE (1st generation) (mobile) • 035FA189-09FF-46B5-96AC-C34E8D068C21 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
      • macOS (desktop)                     • macos                                • darwin-x64     • macOS 11.2.3 20D91 darwin-x64
      • Chrome (web)                        • chrome                               • web-javascript • Google Chrome 89.0.4389.90
  
  • No issues found!
  </code></pre>