diff --git a/test/libsolidity/semanticTests/emit_three_identical_events.sol b/test/libsolidity/semanticTests/emit_three_identical_events.sol new file mode 100644 index 000000000..dec367e1b --- /dev/null +++ b/test/libsolidity/semanticTests/emit_three_identical_events.sol @@ -0,0 +1,14 @@ +contract C { + event Terminated(); + + function terminate() external { + emit Terminated(); + emit Terminated(); + emit Terminated(); + } +} +// ---- +// terminate() -> +// ~ emit Terminated() +// ~ emit Terminated() +// ~ emit Terminated() \ No newline at end of file diff --git a/test/libsolidity/semanticTests/emit_two_identical_events.sol b/test/libsolidity/semanticTests/emit_two_identical_events.sol new file mode 100644 index 000000000..85cdceafc --- /dev/null +++ b/test/libsolidity/semanticTests/emit_two_identical_events.sol @@ -0,0 +1,12 @@ +contract C { + event Terminated(); + + function terminate() external { + emit Terminated(); + emit Terminated(); + } +} +// ---- +// terminate() -> +// ~ emit Terminated() +// ~ emit Terminated() \ No newline at end of file diff --git a/test/libsolidity/util/TestFunctionCall.cpp b/test/libsolidity/util/TestFunctionCall.cpp index 7531d8ce5..a50b3caf0 100644 --- a/test/libsolidity/util/TestFunctionCall.cpp +++ b/test/libsolidity/util/TestFunctionCall.cpp @@ -208,12 +208,10 @@ string TestFunctionCall::format( if (!sideEffects.empty()) { stream << std::endl; - for (string const& effect: sideEffects) - { - stream << _linePrefix << "// ~ " << effect; - if (effect != *sideEffects.rbegin()) - stream << std::endl; - } + size_t i = 0; + for (; i < sideEffects.size() - 1; ++i) + stream << _linePrefix << "// ~ " << sideEffects[i] << std::endl; + stream << _linePrefix << "// ~ " << sideEffects[i]; } stream << formatGasExpectations(_linePrefix, _renderMode == RenderMode::ExpectedValuesActualGas, _interactivePrint);