tact-lang / tact

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

feat: `throw` and `nativeThrow` in return reachability analysis #447

Closed anton-trunov closed 1 week ago

anton-trunov commented 1 week ago

Closes #421

anton-trunov commented 1 week ago

There are also nativeThrowWhen() and nativeThrowUnless(), but those aren't checked as easily :)

The return reachability analysis we use is really dumb: it won't check if an arbitrary function always throws and it won't try to determine if the condition is always true/false for nativeThrowWhen() and nativeThrowUnless(), it won't analyze assembly wrapped into a FunC function, etc.