Rustification — make it memory-safe.
Contractification — make it correct by
contract.
-- SmartDevelopersUseUnderScoresInTheirIdentifiersBecause_it_is_much_easier_to_read (Eiffel = Security by Contract + C Speed)
The next goal: Defusing the "billion-LOL" Bomb With Eiffel
Well that wasn't difficult.. 🙂
inspect a_source_type
when Source_expansion then
entity_expansion_count := entity_expansion_count + (tok_end - index).to_natural_64
put_natural_64 (entity_expansion_count, a_entity_expansion_count)
when Source_expansion_with_checks then
entity_expansion_count := entity_expansion_count + (tok_end - index).to_natural_64
if (content_count + entity_expansion_count) / content_count > max_expansion_proportion then
Result := Error_amplification_limit_breach; done := True
else
put_natural_64 (entity_expansion_count, a_entity_expansion_count)
end
else end