selector_override.sol 793 B

12345678910111213141516171819202122
  1. contract selector {
  2. @selector([0xab, 0xcd])
  3. constructor() {}
  4. @selector([x])
  5. modifier m() {_;}
  6. @selector([1])
  7. receive() payable external {}
  8. @selector([0xabc])
  9. fallback() external {}
  10. @selector([0xab, 0xdd])
  11. function i() internal {}
  12. @selector([0xab, 0xdd])
  13. function p() private {}
  14. }
  15. // ---- Expect: diagnostics ----
  16. // error: 2:2-25: overriding selector not permitted on constructor
  17. // error: 4:2-16: overriding selector not permitted on modifier
  18. // error: 6:2-16: overriding selector not permitted on receive
  19. // error: 8:2-20: overriding selector not permitted on fallback
  20. // error: 10:2-25: overriding selector only permitted on 'public' or 'external' function, not 'internal'
  21. // error: 12:2-25: overriding selector only permitted on 'public' or 'external' function, not 'private'