title: How to properly proxy "inherited" static methods?
body: <p>I'm pretty new to Dart and still learning all the nuances it brings. One thing I'm really getting hung up on with my current task is inheriting (or proxying) static methods from a parent class.</p>
  
  <pre class="lang-dart prettyprint-override"><code>void main() {
    EnglishCasual.greet();
  }
  
  class English {
    static greet() {
      actGreeting();
      sayGreeting();
    }
  
    static sayGreeting() {
      print('hello');
    }
  
    static actGreeting() {
      print('&lt;tips hat&gt;');
    }
  }
  
  class EnglishCasual extends English {
    static sayGreeting() {
      print("m'lady");
    }
  
    static actGreeting() {
      print('&lt;tips fedora&gt;');
    }
  }
  </code></pre>
  
  <p>The above gives the error <code>NoSuchMethodError: method not found: 'greet'</code>, which, according to the Dart docs, is expected behavior, since static methods are not inherited (which seems odd to me, but ok. moving on...)</p>
  
  <p>So then I tried a simple proxy to the parent class...</p>
  
  <p><a href="https://dartpad.dartlang.org/a8c372f031536a00cb096a8bc79d5d5e" rel="nofollow" title="DartPad example 1">DartPad Example</a></p>
  
  <p>But that yields another error: <code>Invalid context for 'super' invocation</code> or <code>'super' is only available in instance methods</code>. Ok... let's explicitly call the parent class by name.</p>
  
  <p><a href="https://dartpad.dartlang.org/b8c65e621abc033b0579b20e40dd51a9" rel="nofollow" title="DartPad Example 2">DartPad Example</a></p>
  
  <p>But, as expected, that's just treated as any other call to <code>English.greet()</code> and we get a formal greeting instead of a casual one. Makes sense.</p>
  
  <p>So then I turned to reflection. I found a snippet here on SO that seemed promising and put it to the test:</p>
  
  <p><a href="https://dartpad.dartlang.org/08d14858c007e5f4c0a1ca90bedf96c3" rel="nofollow" title="DartPad Example 3">DartPad Example</a></p>
  
  <p>Which resulted in an error <code>The method 'greet' is not defined for the class 'EnglishCasual'</code>, which I should have expected, since <code>noSuchMethod</code> wasn't defined as static, it wasn't getting called for static method calls. So, one last time...</p>
  
  <p><a href="https://dartpad.dartlang.org/eaf8ed6410d86296a24d687a0690fff3" rel="nofollow" title="DartPad Example 4">DartPad Example</a></p>
  
  <p>And we get another error <code>The name 'noSuchMethod' is already defined in 'core/object.dart'</code>.</p>
  
  <p>At this point, I'm out of ideas. It seems that there is no way to accomplish this (seemingly simple) exercise, and I'm really hoping you guys can point me in the right direction.</p>
  
  <p>What's the correct way to do this?</p>