Merge pull request #5979 from ethereum/fix-context-for-hint

Make sure "value" error hint is only displayed in the right context
This commit is contained in:
chriseth
2019-02-18 17:35:31 +01:00
committed by GitHub
11 changed files with 32 additions and 21 deletions
@@ -471,7 +471,7 @@ BOOST_AUTO_TEST_CASE(address_staticcall_value)
}
}
)";
CHECK_ERROR(sourceCode, TypeError, "Member \"value\" not found or not visible after argument-dependent lookup");
CHECK_ERROR(sourceCode, TypeError, "Member \"value\" is only available for payable functions.");
}
}
@@ -0,0 +1,7 @@
contract C {
// Tests that we don't get a wrong error about constructors
function f() public view returns (C) { return this; }
function g() public { this.f.value(); }
}
// ----
// TypeError: (155-167): Member "value" is only available for payable functions.
@@ -5,4 +5,4 @@ contract C {
}
}
// ----
// TypeError: (94-101): Member "value" not found or not visible after argument-dependent lookup in function (uint256) external returns (uint256) - did you forget the "payable" modifier?
// TypeError: (94-101): Member "value" is only available for payable functions.
@@ -5,4 +5,4 @@ contract test {
}
}
// ----
// TypeError: (87-96): Member "value" not found or not visible after argument-dependent lookup in function () - did you forget the "payable" modifier?
// TypeError: (87-96): Member "value" is only available for payable functions.
@@ -3,4 +3,4 @@ contract test {
function f() public { (new receiver()).nopay.value(10)(); }
}
// ----
// TypeError: (91-119): Member "value" not found or not visible after argument-dependent lookup in function () external - did you forget the "payable" modifier?
// TypeError: (91-119): Member "value" is only available for payable functions.
@@ -8,4 +8,4 @@ contract D {
}
}
// ----
// TypeError: (106-119): Member "value" not found or not visible after argument-dependent lookup in function () returns (contract C) - did you forget the "payable" modifier?
// TypeError: (106-119): Constructor for contract C must be payable for member "value" to be available.
@@ -4,4 +4,4 @@ contract C {
}
}
// ----
// TypeError: (47-62): Member "value" not found or not visible after argument-dependent lookup in function (bytes memory) pure returns (bytes32) - did you forget the "payable" modifier?
// TypeError: (47-62): Member "value" is only available for payable functions.
@@ -4,4 +4,4 @@ contract C {
}
}
// ----
// TypeError: (47-59): Member "value" not found or not visible after argument-dependent lookup in function (bytes memory) pure returns (bytes32) - did you forget the "payable" modifier?
// TypeError: (47-59): Member "value" is only available for payable functions.
@@ -4,4 +4,4 @@ contract C {
}
}
// ----
// TypeError: (47-62): Member "value" not found or not visible after argument-dependent lookup in function (bytes memory) pure returns (bytes20) - did you forget the "payable" modifier?
// TypeError: (47-62): Member "value" is only available for payable functions.
@@ -4,4 +4,4 @@ contract C {
}
}
// ----
// TypeError: (47-62): Member "value" not found or not visible after argument-dependent lookup in function (bytes32,uint8,bytes32,bytes32) pure returns (address) - did you forget the "payable" modifier?
// TypeError: (47-62): Member "value" is only available for payable functions.