tact-lang / tact

Tact compiler main repository
https://tact-lang.org
MIT License
267 stars 53 forks source link

Missing `external-fallback` receivers #405

Closed byakuren-hijiri closed 6 days ago

byakuren-hijiri commented 6 days ago

External fallback receivers are defined in the AST, but cannot be used.

This code:

contract isK {
    external() {
        42;
    }
}

Parses as a special external-fallback message. But it cannot be compiled as there is no typing rule for in resolveDescriptors:

Error: receive.tact:2:5: Invalid receive function selector
Line 2, col 5:
  1 | contract isK {
> 2 |     external() {
          ^~~~~~~~~~~~
  3 |         42;

Expected: a parser error if it is forbidden intentionally, or no compilation error.