-
Notifications
You must be signed in to change notification settings - Fork 154
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Malformed asm functions pass Tact compiler but fail during FunC compilation stage #1030
Comments
This is (partially) fixed in the current dev version of the compiler. What I mean by partially, is that this code compiles in both Tact and FunC (no string errors there). But the actual error happens in Fift, where it sees the "MYCODE" and, as expected, treats it as a Slice. Which means that this is a logical issue rooted in the intents of the developer coming from FunC to Tact. And I don't know how to treat that, apart from the docs saying that Tact does not need strings. UPD: Maybe, we can either prohibit strings there during the parsing. Should be fine, since FunC allows to use Fift's |
Well, I've just finished a long series of attempts to do just that, and it really messes our general parsing flow, disallowing to parse things like Perhaps, some rather specific might do, like just look for UPD: Nope! Such words are defined too, so that fails. |
Let's solve it with some crutch for now (until we have a proper asm parser). People coming from FunC might add quotes by mistake, so let's just catch this typical error |
Are you using the latest released (or pre-released, a.k.a. "next") version?
Tact source code
Relevant Tact/build system log output
What happened?
No response
What did you expect?
As asm functions are declared in funC in "", it might be the common mistake. Maybe tact compiler should check that? Or change the format of asm functions, because static analizers are mad at them.
Steps to reproduce
No response
How do you run Tact?
tact-template
Anything else?
No response
The text was updated successfully, but these errors were encountered: