title: dart nullsaftey and using old packages
body: <p>I've enabled the dart 2.8 nullsaftey experiment.</p>
  <p>I've converted my app to nullsaftey but its using an old pre-nullsafety package.</p>
  <p>The problem is that the old package has a method which can return null:</p>
  <pre><code>/// Returns the environment variable with [name] or null if it doesn't
  /// exist
  String env(String name);
  </code></pre>
  <p>Which is used as follows:</p>
  <pre><code>var home = env('HOME');
  </code></pre>
  <p>If the HOME environment variable is missing, <code>env</code> returns null.</p>
  <p>The problem is that <code>env</code> is declared as returning a <code>String</code>.</p>
  <p>So when I write</p>
  <pre><code>var home = env('HOME');
  home ??= '/home';
  </code></pre>
  <p>I get an error:</p>
  <pre><code>The operand can't be null, so the condition is always false.
  Try removing the condition, an enclosing condition, or the whole conditional statement.
  </code></pre>
  <p>Given that all the nullsaftey release announcements say you can use nullsaftey with older packages, I'm guessing there is some way to declare an imported packages as non-nullsafe.</p>
  <p>Problem is that I can't find any documentation on how to do this.</p>