Skip to content

Commit 5404343

Browse files
authored
Merge pull request #7926 from ethereum/revertSemver
Revert changes to semver matcher.
2 parents 69e4500 + 9c35038 commit 5404343

File tree

3 files changed

+16
-17
lines changed

3 files changed

+16
-17
lines changed

Changelog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Bugfixes:
1818
* SMTChecker: Fix internal error when using ``abi.decode``.
1919
* SMTChecker: Fix internal error when using arrays or mappings of functions.
2020
* SMTChecker: Fix internal error in array of structs type.
21-
* Version Checker: 0.5.x-prerelease will match `pragma solidity ^0.5`.
21+
* Version Checker: ``^0`` should match ``0.5.0``, but no prerelease.
2222
* Yul: Consider infinite loops and recursion to be not removable.
2323

2424

liblangutil/SemVerHandler.cpp

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ bool SemVerMatchExpression::MatchComponent::matches(SemVerVersion const& _versio
8888
if (!comp.matches(_version))
8989
return false;
9090

91-
if (comp.version.numbers[0] == 0)
91+
if (comp.version.numbers[0] == 0 && comp.levelsPresent != 1)
9292
comp.levelsPresent = 2;
9393
else
9494
comp.levelsPresent = 1;
@@ -107,17 +107,7 @@ bool SemVerMatchExpression::MatchComponent::matches(SemVerVersion const& _versio
107107
}
108108

109109
if (cmp == 0 && !_version.prerelease.empty() && didCompare)
110-
{
111110
cmp = -1;
112-
for (unsigned i = levelsPresent; i < 3; i++)
113-
{
114-
if (_version.numbers[i] > 0)
115-
{
116-
cmp = 0;
117-
break;
118-
}
119-
}
120-
}
121111

122112
switch (prefix)
123113
{

test/libsolidity/SemVerMatcher.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,14 +141,14 @@ BOOST_AUTO_TEST_CASE(positive_range)
141141
{"^0.1.2", "0.1.2"},
142142
{"^0.1", "0.1.2"},
143143
{"^1.2", "1.4.2"},
144-
{"^1.2", "1.2.1-pre"},
145144
{"^1.2", "1.2.0"},
146-
{"^1", "1.2.0-pre"},
147145
{"^1", "1.2.0"},
148146
{"<=1.2.3", "1.2.3-beta"},
149147
{">1.2", "1.3.0-beta"},
150148
{"<1.2.3", "1.2.3-beta"},
151-
{"^1.2 ^1", "1.4.2"}
149+
{"^1.2 ^1", "1.4.2"},
150+
{"^0", "0.5.1"},
151+
{"^0", "0.1.1"},
152152
};
153153
for (auto const& t: tests)
154154
{
@@ -163,13 +163,14 @@ BOOST_AUTO_TEST_CASE(positive_range)
163163

164164
BOOST_AUTO_TEST_CASE(negative_range)
165165
{
166-
// Positive range tests
166+
// Negative range tests
167167
vector<pair<string, string>> tests = {
168168
{"1.0.0 - 2.0.0", "2.2.3"},
169169
{"1.0", "1.0.0-pre"},
170170
{"1", "1.0.0-pre"},
171171
{"^1.2.3", "1.2.3-pre"},
172172
{"^1.2", "1.2.0-pre"},
173+
{"^1.2", "1.2.1-pre"},
173174
{"^1.2.3", "1.2.3-beta"},
174175
{"=0.7.x", "0.7.0-asdf"},
175176
{">=0.7.x", "0.7.0-asdf"},
@@ -212,8 +213,16 @@ BOOST_AUTO_TEST_CASE(negative_range)
212213
{"=1.2.3", "1.2.3-beta"},
213214
{">1.2", "1.2.8"},
214215
{"^1.2.3", "2.0.0-alpha"},
216+
{"^0.6", "0.6.2-alpha"},
217+
{"^0.6", "0.6.0-alpha"},
218+
{"^1.2", "1.2.1-pre"},
215219
{"^1.2.3", "1.2.2"},
216-
{"^1.2", "1.1.9"}
220+
{"^1", "1.2.0-pre"},
221+
{"^1", "1.2.0-pre"},
222+
{"^1.2", "1.1.9"},
223+
{"^0", "0.5.1-pre"},
224+
{"^0", "0.0.0-pre"},
225+
{"^0", "1.0.0"},
217226
};
218227
for (auto const& t: tests)
219228
{

0 commit comments

Comments
 (0)