microsoft / verisol

A formal verifier and analysis tool for Solidity Smart Contracts
Other
245 stars 46 forks source link

Assertion Violation due to Super #233

Open stephensj2 opened 4 years ago

stephensj2 commented 4 years ago

As mentioned by #227 super is not supported by VeriSol. However, there is no indication of this when super is used inside the solidity code. Instead an assertion is violated and the following message is printed:

Assertion Failed at SolToBoogie.TranslatorContext.GetASTNodeById(Int32 id) in TranslatorContext.cs:line 143

This error message makes it difficult to understand why the translation failed as it does not mention where in the file the translation error occurred. It would therefore be helpful if this behavior was either explicitly disallowed (similar to low-level calls), or supported by VeriSol.

A simple test case that violates this assertion is provided below.

inheritanceBug.txt