title: Pass arguments safely to nested graph with Navigation Component
body: <p>I'm using Android Jetpack Navigation Component.
  I have a nested nav graph with id, say <code>R.id.nested_graph</code>
  The first <code>Fragment</code> of the nested graph receives one parameter.</p>
  
  <pre><code>&lt;navigation
          android:id="@+id/nested_graph"
          android:label="Nested Graph"
          app:startDestination="@id/firstFragment"&gt;
          &lt;fragment
              android:id="@+id/firstFragment"
              android:name="...."
              android:label="...."&gt;
              &lt;argument
                  android:name="item_id"
                  app:argType="integer" /&gt;
          &lt;/fragment&gt;
          [...]
      &lt;/navigation&gt;
  </code></pre>
  
  <p>How can I pass the parameter to the nested graph <em>using safe args</em>?</p>
  
  <p>At the moment, I need to pass the argument manually in the bundle, using the API that receives the id of the nested graph directly:</p>
  
  <pre><code>        val args = Bundle()
          args.putInt("item_id", itemId)
          navController.navigate(R.id.nested_graph, args)
  </code></pre>
  
  <p>I'd like to use safe args, and do something like:</p>
  
  <pre><code>        val directions = OrigininFragmentDirections.nestedGraph(itemId)
          navController.navigate(directions)
  </code></pre>
  
  <p>But when trying that, I get the following error at build time:</p>
  
  <pre><code>Too many arguments for public final fun nestedGraph(): NavDirections defined 
  </code></pre>
  
  <p>The issue is that the nav graph preprocessing is generating the factory method to create the <code>NavDirections</code> object <em>without</em> the required parameter in the signature.</p>
  
  <p>The declaration of the nested graph looks like this:</p>