| # Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| # for details. All rights reserved. Use of this source code is governed by a |
| # BSD-style license that can be found in the LICENSE.md file. |
| |
| main.dart.patch: | |
| // Test that super calls are dispatched correctly |
| class C { |
| <<<< ["instance is null", "v1", "super.foo()", "super.foo(42) threw"] |
| foo() { |
| print('v1'); |
| } |
| ==== ["super.foo() threw", "v2", "super.foo(42)"] |
| foo(int i) { |
| print('v2'); |
| } |
| >>>>> |
| } |
| |
| class B extends C { |
| superFooNoArgs() => super.foo(); |
| superFooOneArg(x) => super.foo(x); |
| } |
| |
| var instance; |
| |
| main() { |
| if (instance == null) { |
| print('instance is null'); |
| instance = new B(); |
| } |
| try { |
| instance.superFooNoArgs(); |
| print("super.foo()"); |
| } catch (e) { |
| print("super.foo() threw"); |
| } |
| try { |
| instance.superFooOneArg(42); |
| print("super.foo(42)"); |
| } catch (e) { |
| print("super.foo(42) threw"); |
| } |
| } |