super-resolves-to-multiple.sol 717 B

123456789101112131415161718192021222324252627282930
  1. abstract contract b1 {
  2. function foo(int) internal virtual returns (uint64) {
  3. return 100;
  4. }
  5. }
  6. abstract contract b2 {
  7. function foo(int) internal virtual returns (uint64) {
  8. return 200;
  9. }
  10. function foo(int64) internal virtual returns (uint64) {
  11. return 101;
  12. }
  13. }
  14. contract a is b1, b2 {
  15. function baz() public returns (uint64) {
  16. // this will return 100
  17. return super.foo(1);
  18. }
  19. function foo(int) internal override(b1, b2) returns (uint64) {
  20. return 2;
  21. }
  22. }
  23. // ---- Expect: diagnostics ----
  24. // error: 19:16-28: function call can be resolved to multiple functions
  25. // note 2:5-4:6: candidate function
  26. // note 11:5-13:6: candidate function