Skip to main content
Version: Next

StringReceiversOverlap

A detector that finds overlapping messages between general string receivers and string receivers.

Why is it bad?

Constant string receivers and general string receivers can have overlapping messages in which case the constant string receiver always takes precedence.

Example

contract Test {
receive("foobar") { throw(1042) }
receive(msg: String) {
if (msg == "foobar") { throw(1043) } // Bad: Dead code
}
}

Use instead:

contract Test {
receive("foobar") { throw(1042) }
receive(msg: String) {}
}