diff --git a/docs/assembly.rst b/docs/assembly.rst index 3f00ab6a8a79..1f10fc4a7dc6 100644 --- a/docs/assembly.rst +++ b/docs/assembly.rst @@ -381,8 +381,10 @@ of Solidity, you can use a special comment to annotate an assembly block as memo ... } -Note that we will disallow the annotation via comment in a future breaking release; so, if you are not concerned with -backward-compatibility with older compiler versions, prefer using the dialect string. +.. warning:: + The ``memory-safe-assembly`` special comment is deprecated and scheduled for + removal in the next breaking version (0.9). + For new code targeting recent compilers, prefer specifying the dialect string. Advanced Safe Use of Memory --------------------------- diff --git a/docs/common-patterns.rst b/docs/common-patterns.rst index cbc219b53b5a..4051f0f306a7 100644 --- a/docs/common-patterns.rst +++ b/docs/common-patterns.rst @@ -57,7 +57,8 @@ you receive the funds of the person who is now the richest. // Remember to zero the pending refund before // sending to prevent reentrancy attacks pendingWithdrawals[msg.sender] = 0; - payable(msg.sender).transfer(amount); + (bool success, ) = payable(msg.sender).call{value: amount}(""); + require(success); } } @@ -84,7 +85,8 @@ This is as opposed to the more intuitive sending pattern: function becomeRichest() public payable { if (msg.value <= mostSent) revert NotEnoughEther(); // This line can cause problems (explained below). - richest.transfer(msg.value); + (bool success, ) = richest.call{value: msg.value}(""); + require(success); richest = payable(msg.sender); mostSent = msg.value; } @@ -210,8 +212,10 @@ restrictions highly readable. revert NotEnoughEther(); _; - if (msg.value > amount) - payable(msg.sender).transfer(msg.value - amount); + if (msg.value > amount) { + (bool success, ) = payable(msg.sender).call{value: msg.value - amount}(""); + require(success); + } } function forceOwnerChange(address newOwner) diff --git a/docs/contracts/functions.rst b/docs/contracts/functions.rst index a3a2755388c8..ac02236b43c6 100644 --- a/docs/contracts/functions.rst +++ b/docs/contracts/functions.rst @@ -319,6 +319,10 @@ will consume more gas than the 2300 gas stipend: not recommended, since the fallback is invoked and would not fail for interface confusions on the part of the sender). +.. warning:: + Note that ``send`` and ``transfer`` are deprecated and scheduled for removal in the next breaking version (0.9). + You are encouraged to use the :ref:`call function ` with an optionally provided maximum + amount of gas (default forwards all remaining gas) and an empty calldata parameter, e.g., ``call{value: amount}("")``. .. warning:: A contract without a receive Ether function can receive Ether as a @@ -440,6 +444,7 @@ operations as long as there is enough gas passed on to it. // If someone sends Ether to that contract, // the transfer will fail, i.e. this returns false here. + // This will report a warning (deprecation) return testPayable.send(2 ether); } diff --git a/docs/contracts/inheritance.rst b/docs/contracts/inheritance.rst index 8a2d12afd839..fa59a0624a31 100644 --- a/docs/contracts/inheritance.rst +++ b/docs/contracts/inheritance.rst @@ -377,8 +377,8 @@ of the variable: .. _modifier-overriding: -Modifier Overriding -=================== +Modifier Overriding (deprecated) +================================ Function modifiers can override each other. This works in the same way as :ref:`function overriding ` (except that there is no overloading for modifiers). The @@ -392,6 +392,7 @@ and the ``override`` keyword must be used in the overriding modifier: contract Base { + // This will report a warning (deprecation) modifier foo() virtual {_;} } @@ -411,11 +412,13 @@ explicitly: contract Base1 { + // This will report a warning (deprecation) modifier foo() virtual {_;} } contract Base2 { + // This will report a warning (deprecation) modifier foo() virtual {_;} } @@ -424,6 +427,8 @@ explicitly: modifier foo() override(Base1, Base2) {_;} } +.. warning:: + ``virtual`` modifiers are deprecated and scheduled for removal in the next breaking version (0.9). .. index:: ! constructor diff --git a/docs/control-structures.rst b/docs/control-structures.rst index 8a815e10ef0f..86f2447e7ae5 100644 --- a/docs/control-structures.rst +++ b/docs/control-structures.rst @@ -692,15 +692,17 @@ and ``assert`` for internal error checking. :force: // SPDX-License-Identifier: GPL-3.0 - pragma solidity >=0.5.0 <0.9.0; + pragma solidity >=0.6.2 <0.9.0; contract Sharer { function sendHalf(address payable addr) public payable returns (uint balance) { require(msg.value % 2 == 0, "Even value required."); uint balanceBeforeTransfer = address(this).balance; - addr.transfer(msg.value / 2); - // Since transfer throws an exception on failure and - // cannot call back here, there should be no way for us to + (bool success, ) = addr.call{value: msg.value / 2}(""); + require(success); + // Since require will stop execution and + // revert if success is false, + // there should be no way for us to // still have half of the Ether. assert(address(this).balance == balanceBeforeTransfer - msg.value / 2); return address(this).balance; @@ -775,7 +777,8 @@ together with ``revert`` and the equivalent ``require``: if (msg.sender != owner) revert Unauthorized(); - payable(msg.sender).transfer(address(this).balance); + (bool success, ) = payable(msg.sender).call{value: address(this).balance}(""); + require(success); } } @@ -914,4 +917,4 @@ in scope in the block that follows. out-of-gas situation and not a deliberate error condition: The caller always retains at least 1/64th of the gas in a call and thus even if the called contract goes out of gas, the caller still - has some gas left. \ No newline at end of file + has some gas left. diff --git a/docs/examples/blind-auction.rst b/docs/examples/blind-auction.rst index 47e19033f9ae..acf0b2aeccc0 100644 --- a/docs/examples/blind-auction.rst +++ b/docs/examples/blind-auction.rst @@ -123,8 +123,9 @@ to receive their Ether - contracts cannot activate themselves. // msg.sender is not of type `address payable` and must be // explicitly converted using `payable(msg.sender)` in order - // use the member function `send()`. - if (!payable(msg.sender).send(amount)) { + // use the member function `call()`. + (bool success, ) = payable(msg.sender).call{value: amount}(""); + if (!success) { // No need to call throw here, just reset the amount owing pendingReturns[msg.sender] = amount; return false; @@ -160,7 +161,8 @@ to receive their Ether - contracts cannot activate themselves. emit AuctionEnded(highestBidder, highestBid); // 3. Interaction - beneficiary.transfer(highestBid); + (bool success, ) = beneficiary.call{value: highestBid}(""); + require(success); } } @@ -310,7 +312,8 @@ invalid bids. // the same deposit. bidToCheck.blindedBid = bytes32(0); } - payable(msg.sender).transfer(refund); + (bool success, ) = payable(msg.sender).call{value: refund}(""); + require(success); } /// Withdraw a bid that was overbid. @@ -323,7 +326,8 @@ invalid bids. // conditions -> effects -> interaction). pendingReturns[msg.sender] = 0; - payable(msg.sender).transfer(amount); + (bool success, ) = payable(msg.sender).call{value: amount}(""); + require(success); } } @@ -336,7 +340,8 @@ invalid bids. if (ended) revert AuctionEndAlreadyCalled(); emit AuctionEnded(highestBidder, highestBid); ended = true; - beneficiary.transfer(highestBid); + (bool success, ) = beneficiary.call{value: highestBid}(""); + require(success); } // This is an "internal" function which means that it diff --git a/docs/examples/micropayment.rst b/docs/examples/micropayment.rst index a7b26bb51b8b..373627c3d96a 100644 --- a/docs/examples/micropayment.rst +++ b/docs/examples/micropayment.rst @@ -185,7 +185,8 @@ The full contract // this recreates the message that was signed on the client bytes32 message = prefixed(keccak256(abi.encodePacked(msg.sender, amount, nonce, this))); require(recoverSigner(message, signature) == owner); - payable(msg.sender).transfer(amount); + (bool success, ) = payable(msg.sender).call{value: amount}(""); + require(success); } /// freeze the contract and reclaim the leftover funds. @@ -195,7 +196,8 @@ The full contract { require(msg.sender == owner); freeze(); - payable(msg.sender).transfer(address(this).balance); + (bool success, ) = payable(msg.sender).call{value: address(this).balance}(""); + require(success); } /// signature methods. @@ -406,9 +408,11 @@ The full contract require(msg.sender == recipient); require(isValidSignature(amount, signature)); - recipient.transfer(amount); + (bool success, ) = recipient.call{value: amount}(""); + require(success); freeze(); - sender.transfer(address(this).balance); + (success, ) = sender.call{value: address(this).balance}(""); + require(success); } /// the sender can extend the expiration at any time @@ -430,7 +434,8 @@ The full contract { require(block.timestamp >= expiration); freeze(); - sender.transfer(address(this).balance); + (bool success, ) = sender.call{value: address(this).balance}(""); + require(success); } function isValidSignature(uint256 amount, bytes memory signature) diff --git a/docs/examples/safe-remote.rst b/docs/examples/safe-remote.rst index a2651af23882..5d8a857ad57a 100644 --- a/docs/examples/safe-remote.rst +++ b/docs/examples/safe-remote.rst @@ -97,7 +97,8 @@ you can use state machine-like constructs inside a contract. // reentrancy-safe, because it is the // last call in this function and we // already changed the state. - seller.transfer(address(this).balance); + (bool success, ) = seller.call{value: address(this).balance}(""); + require(success); } /// Confirm the purchase as buyer. @@ -128,7 +129,8 @@ you can use state machine-like constructs inside a contract. // can call in again here. state = State.Release; - buyer.transfer(value); + (bool success, ) = buyer.call{value: value}(""); + require(success); } /// This function refunds the seller, i.e. @@ -144,6 +146,7 @@ you can use state machine-like constructs inside a contract. // can call in again here. state = State.Inactive; - seller.transfer(3 * value); + (bool success, ) = seller.call{value: 3 * value}(""); + require(success); } } diff --git a/docs/layout-of-source-files.rst b/docs/layout-of-source-files.rst index e51b3ad98eb4..17aef026bd62 100644 --- a/docs/layout-of-source-files.rst +++ b/docs/layout-of-source-files.rst @@ -103,10 +103,13 @@ select between the two implementations of the ABI encoder and decoder. The new ABI coder (v2) is able to encode and decode arbitrarily nested arrays and structs. Apart from supporting more types, it involves more extensive validation and safety checks, which may result in higher gas costs, but also heightened -security. It is considered -non-experimental as of Solidity 0.6.0 and it is enabled by default starting +security. +It is considered non-experimental as of Solidity 0.6.0 and it is enabled by default starting with Solidity 0.8.0. The old ABI coder can still be selected using ``pragma abicoder v1;``. +.. warning:: + The ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). + The set of types supported by the new encoder is a strict superset of the ones supported by the old one. Contracts that use it can interact with ones that do not without limitations. The reverse is possible only as long as the diff --git a/docs/security-considerations.rst b/docs/security-considerations.rst index eb42993e6764..221d90f9bdc5 100644 --- a/docs/security-considerations.rst +++ b/docs/security-considerations.rst @@ -65,6 +65,7 @@ To give an example, the following code contains a bug (it is just a snippet and mapping(address => uint) shares; /// Withdraw your share. function withdraw() public { + // This will report a warning (deprecation) if (payable(msg.sender).send(shares[msg.sender])) shares[msg.sender] = 0; } @@ -100,7 +101,7 @@ To avoid reentrancy, you can use the Checks-Effects-Interactions pattern as demo .. code-block:: solidity // SPDX-License-Identifier: GPL-3.0 - pragma solidity >=0.6.0 <0.9.0; + pragma solidity >=0.6.2 <0.9.0; contract Fund { /// @dev Mapping of ether shares of the contract. @@ -109,7 +110,8 @@ To avoid reentrancy, you can use the Checks-Effects-Interactions pattern as demo function withdraw() public { uint share = shares[msg.sender]; shares[msg.sender] = 0; - payable(msg.sender).transfer(share); + (bool success, ) = payable(msg.sender).call{value: share}(""); + require(success); } } @@ -255,6 +257,7 @@ Let's say you have a wallet contract like this: function transferTo(address payable dest, uint amount) public { // THE BUG IS RIGHT HERE, you must use msg.sender instead of tx.origin require(tx.origin == owner); + // This will report a warning (deprecation) dest.transfer(amount); } } diff --git a/docs/types/reference-types.rst b/docs/types/reference-types.rst index 79ba8da6e5be..b07a54f45f97 100644 --- a/docs/types/reference-types.rst +++ b/docs/types/reference-types.rst @@ -680,7 +680,7 @@ shown in the following example: .. code-block:: solidity // SPDX-License-Identifier: GPL-3.0 - pragma solidity >=0.6.0 <0.9.0; + pragma solidity >=0.6.2 <0.9.0; // Defines a new type with two fields. // Declaring a struct outside of a contract allows @@ -729,8 +729,8 @@ shown in the following example: return false; uint amount = c.amount; c.amount = 0; - c.beneficiary.transfer(amount); - return true; + (bool success, ) = c.beneficiary.call{value: amount}(""); + return success; } } diff --git a/docs/types/value-types.rst b/docs/types/value-types.rst index 57fa7b3dabd3..b1944efba64b 100644 --- a/docs/types/value-types.rst +++ b/docs/types/value-types.rst @@ -261,6 +261,11 @@ reverts on failure. .. note:: If ``x`` is a contract address, its code (more specifically: its :ref:`receive-ether-function`, if present, or otherwise its :ref:`fallback-function`, if present) will be executed together with the ``transfer`` call (this is a feature of the EVM and cannot be prevented). If that execution runs out of gas or fails in any way, the Ether transfer will be reverted and the current contract will stop with an exception. +.. warning:: + ``transfer`` is deprecated and scheduled for removal in the next breaking version (0.9). + You are encouraged to use the :ref:`call function ` with an optionally provided maximum + amount of gas (default forwards all remaining gas) and an empty calldata parameter, e.g., ``call{value: amount}("")``. + * ``send`` ``send`` is the low-level counterpart of ``transfer``. If the execution fails, the current contract will not stop with an exception, but ``send`` will return ``false``. @@ -271,6 +276,13 @@ reverts on failure. to make safe Ether transfers, always check the return value of ``send``, use ``transfer`` or even better: use a pattern where the recipient withdraws the Ether. +.. warning:: + ``send`` is deprecated and scheduled for removal in the next breaking version (0.9). + You are encouraged to use the :ref:`call function ` with an optionally provided maximum + amount of gas (default forwards all remaining gas) and an empty calldata parameter, e.g., ``call{value: amount}("")``. + +.. _address_call_functions: + * ``call``, ``delegatecall`` and ``staticcall`` In order to interface with contracts that do not adhere to the ABI, diff --git a/libsolidity/analysis/DocStringTagParser.cpp b/libsolidity/analysis/DocStringTagParser.cpp index 5d95f42e902c..da6095222b5f 100644 --- a/libsolidity/analysis/DocStringTagParser.cpp +++ b/libsolidity/analysis/DocStringTagParser.cpp @@ -211,6 +211,11 @@ bool DocStringTagParser::visit(InlineAssembly const& _assembly) "otherwise only use the NatSpec tag." ); _assembly.annotation().markedMemorySafe = true; + m_errorReporter.warning( + 2424_error, + _assembly.location(), + "Natspec memory safe annotation for inline assembly is deprecated and scheduled for removal in the next breaking version (0.9)." + ); } else m_errorReporter.warning( diff --git a/libsolidity/analysis/SyntaxChecker.cpp b/libsolidity/analysis/SyntaxChecker.cpp index 1e3f5f1c2a56..14bdeb84ba85 100644 --- a/libsolidity/analysis/SyntaxChecker.cpp +++ b/libsolidity/analysis/SyntaxChecker.cpp @@ -149,6 +149,13 @@ bool SyntaxChecker::visit(PragmaDirective const& _pragma) ); else m_sourceUnit->annotation().useABICoderV2 = (_pragma.literals()[1] == "v2"); + + if (_pragma.literals().size() > 1 && _pragma.literals()[1] == "v1") + m_errorReporter.warning( + 9511_error, + _pragma.location(), + "ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9)." + ); } else if (_pragma.literals()[0] == "solidity") { @@ -184,6 +191,14 @@ void SyntaxChecker::endVisit(ModifierDefinition const& _modifier) { if (_modifier.isImplemented() && !m_placeholderFound) m_errorReporter.syntaxError(2883_error, _modifier.body().location(), "Modifier body does not contain '_'."); + + if (_modifier.markedVirtual()) + m_errorReporter.warning( + 8429_error, + _modifier.location(), + "Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9)." + ); + m_placeholderFound = false; } diff --git a/libsolidity/analysis/TypeChecker.cpp b/libsolidity/analysis/TypeChecker.cpp index e56ee157d94d..7507cfa78561 100644 --- a/libsolidity/analysis/TypeChecker.cpp +++ b/libsolidity/analysis/TypeChecker.cpp @@ -1829,6 +1829,16 @@ void TypeChecker::endVisit(BinaryOperation const& _operation) ) ); } + if ( + TokenTraits::isCompareOp(_operation.getOperator()) && + commonType->category() == Type::Category::Contract + ) + m_errorReporter.warning( + 9170_error, + _operation.location(), + "Comparison of variables of contract type will be deprecated in the next breaking version (0.9). " + "Instead, use an explicit cast to address type." + ); } Type const* TypeChecker::typeCheckTypeConversionAndRetrieveReturnType( @@ -3212,6 +3222,20 @@ bool TypeChecker::visit(MemberAccess const& _memberAccess) if (contractType && contractType->isSuper()) requiredLookup = VirtualLookup::Super; } + + if ( + funType->kind() == FunctionType::Kind::Send || + funType->kind() == FunctionType::Kind::Transfer + ) + m_errorReporter.warning( + 9207_error, + _memberAccess.location(), + fmt::format( + "'{}' is deprecated and scheduled for removal in the next breaking version (0.9). " + "It is encouraged to use 'call{{value: }}()' instead.", + funType->kind() == FunctionType::Kind::Send ? "send" : "transfer" + ) + ); } annotation.requiredLookup = requiredLookup; diff --git a/test/cmdlineTests/model_checker_targets_all_all_engines/err b/test/cmdlineTests/model_checker_targets_all_all_engines/err index e095ba263c5a..4c28dced8584 100644 --- a/test/cmdlineTests/model_checker_targets_all_all_engines/err +++ b/test/cmdlineTests/model_checker_targets_all_all_engines/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Underflow (resulting value less than 0) happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_all_bmc/err b/test/cmdlineTests/model_checker_targets_all_bmc/err index 3887cc6b2a7f..519f971c232e 100644 --- a/test/cmdlineTests/model_checker_targets_all_bmc/err +++ b/test/cmdlineTests/model_checker_targets_all_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Condition is always true. --> input.sol:6:11: | diff --git a/test/cmdlineTests/model_checker_targets_all_chc/err b/test/cmdlineTests/model_checker_targets_all_chc/err index c3853983af72..412d7011594b 100644 --- a/test/cmdlineTests/model_checker_targets_all_chc/err +++ b/test/cmdlineTests/model_checker_targets_all_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Underflow (resulting value less than 0) happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_assert_bmc/err b/test/cmdlineTests/model_checker_targets_assert_bmc/err index 27395c9dc507..7668a2b47f8d 100644 --- a/test/cmdlineTests/model_checker_targets_assert_bmc/err +++ b/test/cmdlineTests/model_checker_targets_assert_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Assertion violation happens here. --> input.sol:11:3: | diff --git a/test/cmdlineTests/model_checker_targets_assert_chc/err b/test/cmdlineTests/model_checker_targets_assert_chc/err index ada7c3d3dc90..e5669593870a 100644 --- a/test/cmdlineTests/model_checker_targets_assert_chc/err +++ b/test/cmdlineTests/model_checker_targets_assert_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Assertion violation happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_balance_bmc/err b/test/cmdlineTests/model_checker_targets_balance_bmc/err index 178bd66620bd..35b1bde30470 100644 --- a/test/cmdlineTests/model_checker_targets_balance_bmc/err +++ b/test/cmdlineTests/model_checker_targets_balance_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Insufficient funds happens here. --> input.sol:10:3: | diff --git a/test/cmdlineTests/model_checker_targets_balance_chc/err b/test/cmdlineTests/model_checker_targets_balance_chc/err index 57bfe42678e4..66ca75578c91 100644 --- a/test/cmdlineTests/model_checker_targets_balance_chc/err +++ b/test/cmdlineTests/model_checker_targets_balance_chc/err @@ -1 +1,7 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:11:3: + | +11 | a.transfer(x); + | ^^^^^^^^^^ + Info: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/cmdlineTests/model_checker_targets_constant_condition_bmc/err b/test/cmdlineTests/model_checker_targets_constant_condition_bmc/err index a7228dd768e8..7f00817438ed 100644 --- a/test/cmdlineTests/model_checker_targets_constant_condition_bmc/err +++ b/test/cmdlineTests/model_checker_targets_constant_condition_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Condition is always true. --> input.sol:6:11: | diff --git a/test/cmdlineTests/model_checker_targets_constant_condition_chc/err b/test/cmdlineTests/model_checker_targets_constant_condition_chc/err new file mode 100644 index 000000000000..65f637fc7427 --- /dev/null +++ b/test/cmdlineTests/model_checker_targets_constant_condition_chc/err @@ -0,0 +1,5 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:11:3: + | +11 | a.transfer(x); + | ^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_default_all_engines/err b/test/cmdlineTests/model_checker_targets_default_all_engines/err index 58cbc01f1436..970963aba0fd 100644 --- a/test/cmdlineTests/model_checker_targets_default_all_engines/err +++ b/test/cmdlineTests/model_checker_targets_default_all_engines/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Division by zero happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_default_bmc/err b/test/cmdlineTests/model_checker_targets_default_bmc/err index bc85e3cb4acc..5949471a68b6 100644 --- a/test/cmdlineTests/model_checker_targets_default_bmc/err +++ b/test/cmdlineTests/model_checker_targets_default_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Condition is always true. --> input.sol:6:11: | diff --git a/test/cmdlineTests/model_checker_targets_default_chc/err b/test/cmdlineTests/model_checker_targets_default_chc/err index e8b7382168ac..40538cb699bf 100644 --- a/test/cmdlineTests/model_checker_targets_default_chc/err +++ b/test/cmdlineTests/model_checker_targets_default_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Division by zero happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/err b/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/err index 2d554ebceb7d..bd42d9762942 100644 --- a/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/err +++ b/test/cmdlineTests/model_checker_targets_div_by_zero_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Division by zero happens here. --> input.sol:9:3: | diff --git a/test/cmdlineTests/model_checker_targets_div_by_zero_chc/err b/test/cmdlineTests/model_checker_targets_div_by_zero_chc/err index 81616b3bedab..3401cb572b27 100644 --- a/test/cmdlineTests/model_checker_targets_div_by_zero_chc/err +++ b/test/cmdlineTests/model_checker_targets_div_by_zero_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Division by zero happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_out_of_bounds_bmc/err b/test/cmdlineTests/model_checker_targets_out_of_bounds_bmc/err new file mode 100644 index 000000000000..65f637fc7427 --- /dev/null +++ b/test/cmdlineTests/model_checker_targets_out_of_bounds_bmc/err @@ -0,0 +1,5 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:11:3: + | +11 | a.transfer(x); + | ^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/err b/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/err index 907a19f1e11a..c959eabdc9bc 100644 --- a/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/err +++ b/test/cmdlineTests/model_checker_targets_out_of_bounds_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Out of bounds access happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_overflow_bmc/err b/test/cmdlineTests/model_checker_targets_overflow_bmc/err index a0f9ff1e07a9..2084891be7bc 100644 --- a/test/cmdlineTests/model_checker_targets_overflow_bmc/err +++ b/test/cmdlineTests/model_checker_targets_overflow_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Overflow (resulting value larger than 2**256 - 1) happens here. --> input.sol:8:3: | diff --git a/test/cmdlineTests/model_checker_targets_overflow_chc/err b/test/cmdlineTests/model_checker_targets_overflow_chc/err index 60298f02285a..aae5a601f0b0 100644 --- a/test/cmdlineTests/model_checker_targets_overflow_chc/err +++ b/test/cmdlineTests/model_checker_targets_overflow_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_pop_empty_bmc/err b/test/cmdlineTests/model_checker_targets_pop_empty_bmc/err new file mode 100644 index 000000000000..65f637fc7427 --- /dev/null +++ b/test/cmdlineTests/model_checker_targets_pop_empty_bmc/err @@ -0,0 +1,5 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:11:3: + | +11 | a.transfer(x); + | ^^^^^^^^^^ diff --git a/test/cmdlineTests/model_checker_targets_pop_empty_chc/err b/test/cmdlineTests/model_checker_targets_pop_empty_chc/err index a01248775704..c71653d2a4ad 100644 --- a/test/cmdlineTests/model_checker_targets_pop_empty_chc/err +++ b/test/cmdlineTests/model_checker_targets_pop_empty_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Empty array "pop" happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_underflow_bmc/err b/test/cmdlineTests/model_checker_targets_underflow_bmc/err index db14639238c6..343b7efb27fc 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_bmc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Underflow (resulting value less than 0) happens here. --> input.sol:7:3: | diff --git a/test/cmdlineTests/model_checker_targets_underflow_chc/err b/test/cmdlineTests/model_checker_targets_underflow_chc/err index 57c6649a40f4..4e58c682db55 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_chc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Underflow (resulting value less than 0) happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/err b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/err index 670b064ce183..2a3e1abb33c6 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Underflow (resulting value less than 0) happens here. --> input.sol:7:3: | diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/err b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/err index 4602e76006dc..e4905217b95c 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_assert_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Underflow (resulting value less than 0) happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/err b/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/err index ea6dfb99cb5d..3dae717447a7 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_bmc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: BMC: Underflow (resulting value less than 0) happens here. --> input.sol:7:3: | diff --git a/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/err b/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/err index 8eed85ac3de3..8b1fee93bcd4 100644 --- a/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/err +++ b/test/cmdlineTests/model_checker_targets_underflow_overflow_chc/err @@ -1,3 +1,9 @@ +Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> input.sol:10:3: + | +10 | a.transfer(x); + | ^^^^^^^^^^ + Warning: CHC: Underflow (resulting value less than 0) happens here. Counterexample: arr = [] diff --git a/test/cmdlineTests/standard_model_checker_targets_assert_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_assert_bmc/output.json index 9e90ec538d35..c91bf14d4798 100644 --- a/test/cmdlineTests/standard_model_checker_targets_assert_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_assert_bmc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "4661", diff --git a/test/cmdlineTests/standard_model_checker_targets_assert_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_assert_chc/output.json index bf4fa6626933..5244c52c3a47 100644 --- a/test/cmdlineTests/standard_model_checker_targets_assert_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_assert_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "6328", diff --git a/test/cmdlineTests/standard_model_checker_targets_balance_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_balance_bmc/output.json index 6c2c90c9888b..d1c2f72e1c19 100644 --- a/test/cmdlineTests/standard_model_checker_targets_balance_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_balance_bmc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "1236", diff --git a/test/cmdlineTests/standard_model_checker_targets_balance_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_balance_chc/output.json index 9d3e40b708f1..b081dd26f38e 100644 --- a/test/cmdlineTests/standard_model_checker_targets_balance_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_balance_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "1391", diff --git a/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/output.json index 9bfdf0b02111..dfdeecddc441 100644 --- a/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_constantCondition_bmc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "6838", diff --git a/test/cmdlineTests/standard_model_checker_targets_constantCondition_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_constantCondition_chc/output.json index f047ff70a9eb..2f05a732b2a9 100644 --- a/test/cmdlineTests/standard_model_checker_targets_constantCondition_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_constantCondition_chc/output.json @@ -1,4 +1,25 @@ { + "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + } + ], "sources": { "A": { "id": 0 diff --git a/test/cmdlineTests/standard_model_checker_targets_default_all_engines/output.json b/test/cmdlineTests/standard_model_checker_targets_default_all_engines/output.json index 8f20d854bfb5..55ad4e93827e 100644 --- a/test/cmdlineTests/standard_model_checker_targets_default_all_engines/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_default_all_engines/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "4281", diff --git a/test/cmdlineTests/standard_model_checker_targets_default_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_default_bmc/output.json index e055d38d2e53..53f8f77533c5 100644 --- a/test/cmdlineTests/standard_model_checker_targets_default_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_default_bmc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "6838", diff --git a/test/cmdlineTests/standard_model_checker_targets_default_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_default_chc/output.json index e045a8bff49a..b5552bd17687 100644 --- a/test/cmdlineTests/standard_model_checker_targets_default_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_default_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "4281", diff --git a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/output.json index 6ba0e6f82057..9f80e8dfbf11 100644 --- a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_bmc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "3046", diff --git a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/output.json index 0789c79996fe..0757595dbd1e 100644 --- a/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_div_by_zero_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "4281", diff --git a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_bmc/output.json index f047ff70a9eb..2f05a732b2a9 100644 --- a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_bmc/output.json @@ -1,4 +1,25 @@ { + "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + } + ], "sources": { "A": { "id": 0 diff --git a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/output.json index f5f49fb508e7..a061771c07a9 100644 --- a/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_out_of_bounds_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "6368", diff --git a/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/output.json index 8d34765cdb14..26666b389cbf 100644 --- a/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_overflow_bmc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "2661", diff --git a/test/cmdlineTests/standard_model_checker_targets_overflow_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_overflow_chc/output.json index 9beb30a35b7c..7e91662de2b3 100644 --- a/test/cmdlineTests/standard_model_checker_targets_overflow_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_overflow_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "4984", diff --git a/test/cmdlineTests/standard_model_checker_targets_pop_empty_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_pop_empty_bmc/output.json index f047ff70a9eb..2f05a732b2a9 100644 --- a/test/cmdlineTests/standard_model_checker_targets_pop_empty_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_pop_empty_bmc/output.json @@ -1,4 +1,25 @@ { + "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + } + ], "sources": { "A": { "id": 0 diff --git a/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/output.json index 4cccf8456df4..bdfe459c85dd 100644 --- a/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_pop_empty_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "2529", diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/output.json index df17886b2fea..ea32d956bc48 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_bmc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "4144", diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_chc/output.json index 442f2f47a981..5c4b6bbd39b1 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "3944", diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/output.json index c80d3e22a8e2..5a36f8653682 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_bmc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "4144", diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/output.json index e5719640aad3..a2b844d4ffa7 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_assert_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "3944", diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/output.json index de02d57c90ab..1eb8a53da2d6 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_bmc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "4144", diff --git a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/output.json b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/output.json index 6fb8762e4312..74ecacd996c0 100644 --- a/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/output.json +++ b/test/cmdlineTests/standard_model_checker_targets_underflow_overflow_chc/output.json @@ -1,5 +1,24 @@ { "errors": [ + { + "component": "general", + "errorCode": "9207", + "formattedMessage": "Warning: 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. + --> A:11:7: + | +11 | \t\t\t\t\t\ta.transfer(x); + | \t\t\t\t\t\t^^^^^^^^^^ + +", + "message": "'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead.", + "severity": "warning", + "sourceLocation": { + "end": 234, + "file": "A", + "start": 224 + }, + "type": "Warning" + }, { "component": "general", "errorCode": "3944", diff --git a/test/cmdlineTests/viair_abicoder_v1/err b/test/cmdlineTests/viair_abicoder_v1/err index 29fa2acd04a0..88a830fc533d 100644 --- a/test/cmdlineTests/viair_abicoder_v1/err +++ b/test/cmdlineTests/viair_abicoder_v1/err @@ -1,3 +1,9 @@ +Warning (9511): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). + --> input.sol:3:1: + | +3 | pragma abicoder v1; + | ^^^^^^^^^^^^^^^^^^^ + Warning (2066): Contract requests the ABI coder v1, which is incompatible with the IR. Using ABI coder v2 instead. --> input.sol:4:1: | diff --git a/test/externalTests/zeppelin.sh b/test/externalTests/zeppelin.sh index 9bc3e29132aa..56051f4a2adc 100755 --- a/test/externalTests/zeppelin.sh +++ b/test/externalTests/zeppelin.sh @@ -105,6 +105,25 @@ function zeppelin_test # Fails with ProviderError: Invalid transaction: GasFloorMoreThanGasLimit sed -i "177s|+ 2_000n|+ 10_000n|" test/metatx/ERC2771Forwarder.test.js + cat <<-EOF >> "$config_file" +const { TASK_COMPILE_SOLIDITY_COMPILE } = require("hardhat/builtin-tasks/task-names"); + +task(TASK_COMPILE_SOLIDITY_COMPILE) + .setAction(async (args, hre, runSuper) => { + const result = await runSuper(args); + + result.output.errors = (result.output.errors || []).filter(err => { + if (err.severity === "warning" && err.message.includes("deprecated")) { + return false; // suppress this warning + } + return true; + }); + + return result; + }); + +EOF + neutralize_package_json_hooks force_hardhat_compiler_binary "$config_file" "$BINARY_TYPE" "$BINARY_PATH" force_hardhat_compiler_settings "$config_file" "$(first_word "$SELECTED_PRESETS")" diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/balance_spend.sol b/test/libsolidity/smtCheckerTests/blockchain_state/balance_spend.sol index 720ab5695029..18db6c8f734e 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/balance_spend.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/balance_spend.sol @@ -18,5 +18,6 @@ contract C { // SMTEngine: all // SMTIgnoreCex: yes // ---- +// Warning 9207: (175-186): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Warning 6328: (280-314): CHC: Assertion violation happens here. // Info 1391: CHC: 3 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/balance_spend_2.sol b/test/libsolidity/smtCheckerTests/blockchain_state/balance_spend_2.sol index 3ceac964f111..b680834a737c 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/balance_spend_2.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/balance_spend_2.sol @@ -17,6 +17,7 @@ contract C { // SMTIgnoreCex: yes // SMTIgnoreOS: macos // ---- +// Warning 9207: (141-152): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Warning 8656: (141-156): CHC: Insufficient funds happens here. // Warning 6328: (193-226): CHC: Assertion violation happens here. // Warning 6328: (245-279): CHC: Assertion violation happens here. diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol b/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol index df35a2785824..dcf610e863d7 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/decreasing_balance.sol @@ -18,4 +18,5 @@ contract C { // ==== // SMTEngine: all // ---- +// Warning 9207: (160-170): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Info 1391: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/free_function_2.sol b/test/libsolidity/smtCheckerTests/blockchain_state/free_function_2.sol index 3b7c0f9dce34..8203bc93adf1 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/free_function_2.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/free_function_2.sol @@ -19,5 +19,6 @@ contract C { // SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (258-274): CHC: Assertion violation happens here. +// Warning 9207: (33-43): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 6328: (258-274): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0x7e1e\nb1 = 38\nb2 = 37\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0x7e1e){ msg.value: 17 }\n l(0x7e1e) -- internal call // Info 1391: CHC: 4 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/library_internal_2.sol b/test/libsolidity/smtCheckerTests/blockchain_state/library_internal_2.sol index 826af0bf867d..22001c8f7669 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/library_internal_2.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/library_internal_2.sol @@ -22,5 +22,6 @@ contract C { // SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (315-331): CHC: Assertion violation happens here. +// Warning 9207: (87-97): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 6328: (315-331): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0x7e1e\nb1 = 38\nb2 = 37\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0x7e1e){ msg.value: 17 }\n L.l(0x7e1e) -- internal call // Info 1391: CHC: 4 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/library_public_2.sol b/test/libsolidity/smtCheckerTests/blockchain_state/library_public_2.sol index 02e29be8de9c..45d4308c2201 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/library_public_2.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/library_public_2.sol @@ -20,7 +20,8 @@ contract C { // SMTEngine: all // SMTIgnoreCex: yes // ---- +// Warning 9207: (54-64): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Warning 4588: (238-243): Assertion checker does not yet implement this type of function call. -// Warning 8656: (54-67): CHC: Insufficient funds happens here. -// Warning 6328: (282-298): CHC: Assertion violation happens here. -// Warning 6328: (317-331): CHC: Assertion violation happens here. +// Warning 8656: (54-67): CHC: Insufficient funds happens here.\nCounterexample:\n\na = 0x0\n\nTransaction trace:\nL.constructor()\nL.l(0x0) +// Warning 6328: (282-298): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\na = 0x0\nb1 = 15923\nb2 = 15924\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0x0){ msg.value: 15923 } +// Warning 6328: (317-331): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\na = 0x0\nb1 = 15923\nb2 = 15924\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f(0x0){ msg.value: 15923 } diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/transfer_1.sol b/test/libsolidity/smtCheckerTests/blockchain_state/transfer_1.sol index 169257edff8a..177320c693b7 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/transfer_1.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/transfer_1.sol @@ -11,5 +11,6 @@ contract C { // SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (166-201): CHC: Assertion violation happens here. +// Warning 9207: (96-106): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 6328: (166-201): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0x0\n\nTransaction trace:\nC.constructor()\nC.f(0x0) // Info 1391: CHC: 2 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/transfer_2.sol b/test/libsolidity/smtCheckerTests/blockchain_state/transfer_2.sol index ed5b4c90f2cf..32a85ca3a9a8 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/transfer_2.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/transfer_2.sol @@ -11,4 +11,6 @@ contract C { // ==== // SMTEngine: chc // ---- +// Warning 9207: (133-151): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 9207: (167-185): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Info 1391: CHC: 2 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/transfer_3.sol b/test/libsolidity/smtCheckerTests/blockchain_state/transfer_3.sol index 4b3318b6bece..196abb550ca0 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/transfer_3.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/transfer_3.sol @@ -8,4 +8,5 @@ contract C { // ==== // SMTEngine: all // ---- -// Warning 8656: (76-97): CHC: Insufficient funds happens here. +// Warning 9207: (76-94): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 8656: (76-97): CHC: Insufficient funds happens here.\nCounterexample:\nrecipient = 0x0\n\nTransaction trace:\nC.constructor()\nState: recipient = 0x0\nC.shouldFail() diff --git a/test/libsolidity/smtCheckerTests/blockchain_state/transfer_4.sol b/test/libsolidity/smtCheckerTests/blockchain_state/transfer_4.sol index ab0c4a81efeb..32fafa085210 100644 --- a/test/libsolidity/smtCheckerTests/blockchain_state/transfer_4.sol +++ b/test/libsolidity/smtCheckerTests/blockchain_state/transfer_4.sol @@ -9,4 +9,5 @@ contract C { // ==== // SMTEngine: all // ---- +// Warning 9207: (101-119): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Info 1391: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol b/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol index 737443e64b91..46304c10c756 100644 --- a/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol +++ b/test/libsolidity/smtCheckerTests/bmc_coverage/funds.sol @@ -6,4 +6,5 @@ contract C { // ==== // SMTEngine: bmc // ---- +// Warning 9207: (55-65): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Warning 1236: (55-70): BMC: Insufficient funds happens here. diff --git a/test/libsolidity/smtCheckerTests/deployment/deploy_trusted_addresses.sol b/test/libsolidity/smtCheckerTests/deployment/deploy_trusted_addresses.sol index 01c68790c843..39ad6e820d40 100644 --- a/test/libsolidity/smtCheckerTests/deployment/deploy_trusted_addresses.sol +++ b/test/libsolidity/smtCheckerTests/deployment/deploy_trusted_addresses.sol @@ -16,4 +16,5 @@ contract C { // SMTEngine: all // SMTExtCalls: trusted // ---- +// Warning 9170: (107-115): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. // Info 1391: CHC: 3 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/deployment/deploy_untrusted_addresses.sol b/test/libsolidity/smtCheckerTests/deployment/deploy_untrusted_addresses.sol index c934e152b27c..9cd19f90de29 100644 --- a/test/libsolidity/smtCheckerTests/deployment/deploy_untrusted_addresses.sol +++ b/test/libsolidity/smtCheckerTests/deployment/deploy_untrusted_addresses.sol @@ -15,8 +15,9 @@ contract C { // ==== // SMTEngine: all // ---- +// Warning 9170: (107-115): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. // Warning 8729: (70-77): Contract deployment is only supported in the trusted mode for external calls with the CHC engine. // Warning 8729: (88-95): Contract deployment is only supported in the trusted mode for external calls with the CHC engine. // Warning 6328: (100-116): CHC: Assertion violation happens here.\nCounterexample:\n\nd1 = 0\nd2 = 0\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (163-199): CHC: Assertion violation happens here.\nCounterexample:\n\nd1 = 21238\nd2 = 21238\n\nTransaction trace:\nC.constructor()\nC.f() -// Warning 6328: (246-282): CHC: Assertion violation happens here.\nCounterexample:\n\nd1 = 21238\nd2 = 21238\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (163-199): CHC: Assertion violation happens here.\nCounterexample:\n\nd1 = 11797\nd2 = 11797\n\nTransaction trace:\nC.constructor()\nC.f() +// Warning 6328: (246-282): CHC: Assertion violation happens here.\nCounterexample:\n\nd1 = 8855\nd2 = 8855\n\nTransaction trace:\nC.constructor()\nC.f() diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol index 209b00f5f319..50b187fef63e 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_1.sol @@ -15,4 +15,5 @@ contract D { // ==== // SMTEngine: all // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // Info 1391: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol index b62611b5190d..04c05afa1d4a 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_2.sol @@ -20,5 +20,6 @@ contract D { // SMTEngine: all // SMTIgnoreCex: no // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // Warning 6328: (267-281): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43}]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() // Info 1391: CHC: 2 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol index abe50e8a5445..21135afa07ab 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/array_of_structs_3.sol @@ -21,5 +21,6 @@ contract D { // ==== // SMTEngine: all // ---- -// Warning 6328: (322-336): CHC: Assertion violation happens here. +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 6328: (322-336): CHC: Assertion violation happens here.\nCounterexample:\nitems = [{x: 42, y: 43, arr: [0]}]\ntmp = [0]\na = 42\nb = 43\n\nTransaction trace:\nD.constructor()\nState: items = []\nD.test() // Info 1391: CHC: 2 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/contract.sol b/test/libsolidity/smtCheckerTests/functions/getters/contract.sol index 7da893bd3644..b21ce50068b4 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/contract.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/contract.sol @@ -12,5 +12,6 @@ contract C { // ==== // SMTEngine: all // ---- -// Warning 6328: (123-158): CHC: Assertion violation happens here. +// Warning 9170: (97-103): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. +// Warning 6328: (123-158): CHC: Assertion violation happens here.\nCounterexample:\nd = 0\ne = 0\n\nTransaction trace:\nC.constructor()\nState: d = 0\nC.f() // Info 1391: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol b/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol index 345959354fb4..88621b33724e 100644 --- a/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol +++ b/test/libsolidity/smtCheckerTests/functions/getters/struct_4.sol @@ -18,7 +18,8 @@ contract C { // ==== // SMTEngine: all // ---- +// Warning 9170: (206-214): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. // Warning 2072: (146-183): Unused local variable. // Warning 8364: (187-193): Assertion checker does not yet implement type function () view external returns (contract D,function () external returns (uint256)) -// Warning 6328: (234-269): CHC: Assertion violation happens here. +// Warning 6328: (234-269): CHC: Assertion violation happens here.\nCounterexample:\ns = {d: 0, f: 0}\nd = 0\nf = 0\n\nTransaction trace:\nC.constructor()\nState: s = {d: 0, f: 0}\nC.test() // Info 1391: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol index 9d541b629988..6e93aac30c36 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_abstract.sol @@ -5,3 +5,4 @@ abstract contract A { // ==== // SMTEngine: all // ---- +// Warning 8429: (51-72): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol index 9165ed13311a..555729da8768 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_1.sol @@ -20,5 +20,6 @@ contract B is A { // ==== // SMTEngine: all // ---- -// Warning 6328: (209-223): CHC: Assertion violation happens here. +// Warning 8429: (64-93): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 6328: (209-223): CHC: Assertion violation happens here.\nCounterexample:\ns = 42\nx = 42\n\nTransaction trace:\nB.constructor()\nState: s = 0\nB.set(42)\nState: s = 42\nA.f() // Info 1391: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol index fd9dc9008523..390c27661440 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_2.sol @@ -23,4 +23,6 @@ contract C is B { // ==== // SMTEngine: all // ---- +// Warning 8429: (113-136): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (159-213): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // Warning 6328: (66-75): CHC: Assertion violation happens here.\nCounterexample:\ns = false\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol index f85e1b3baec0..50417e0b2635 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_3.sol @@ -18,5 +18,7 @@ contract B is A { // ==== // SMTEngine: all // ---- -// Warning 6328: (94-104): CHC: Assertion violation happens here. +// Warning 8429: (125-148): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (171-238): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 6328: (94-104): CHC: Assertion violation happens here.\nCounterexample:\ns = true\nx = true\n\nTransaction trace:\nB.constructor()\nState: s = false\nA.f() // Info 1391: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol index d0e82665ccfc..d9de76d3b2b2 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_overriding_4.sol @@ -36,6 +36,10 @@ contract D is B,C { // ==== // SMTEngine: all // ---- +// Warning 8429: (262-294): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (317-367): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (390-440): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (465-520): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // Warning 6328: (160-174): CHC: Assertion violation happens here.\nCounterexample:\nx = 1\n\nTransaction trace:\nB.constructor()\nState: x = 0\nA.f() // Warning 6328: (193-207): CHC: Assertion violation happens here.\nCounterexample:\nx = 2\n\nTransaction trace:\nC.constructor()\nState: x = 0\nA.f() // Warning 6328: (226-240): CHC: Assertion violation happens here.\nCounterexample:\nx = 3\n\nTransaction trace:\nD.constructor()\nState: x = 0\nA.f() diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol index 40bc6d93ebbd..dc305a856449 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_1.sol @@ -10,3 +10,4 @@ contract C is A { // ==== // SMTEngine: all // ---- +// Warning 8429: (17-52): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol index b270fb2bb5e1..3544d86077c4 100644 --- a/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol +++ b/test/libsolidity/smtCheckerTests/modifiers/modifier_virtual_static_call_2.sol @@ -20,5 +20,6 @@ contract C is A { // ==== // SMTEngine: all // ---- -// Warning 6328: (83-98): CHC: Assertion violation happens here. +// Warning 8429: (27-122): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 6328: (83-98): CHC: Assertion violation happens here.\nCounterexample:\nx = 0\n = 0\n\nTransaction trace:\nC.constructor()\nState: x = 0\nC.f() // Info 1391: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer.sol b/test/libsolidity/smtCheckerTests/types/address_transfer.sol index 1430e15cb8e7..efa40a128f56 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer.sol @@ -11,5 +11,6 @@ contract C // ==== // SMTEngine: all // ---- -// Warning 8656: (98-113): CHC: Insufficient funds happens here. -// Warning 6328: (162-186): CHC: Assertion violation happens here. +// Warning 9207: (98-108): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 8656: (98-113): CHC: Insufficient funds happens here.\nCounterexample:\n\na = 0x51f0\nx = 100\n\nTransaction trace:\nC.constructor()\nC.f(0x51f0) +// Warning 6328: (162-186): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0x0\nx = 100\n\nTransaction trace:\nC.constructor()\nC.f(0x0) diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol b/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol index ce6492d9e57a..c711df2cec12 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer_2.sol @@ -15,6 +15,8 @@ contract C // SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 8656: (184-199): CHC: Insufficient funds happens here. -// Warning 8656: (203-218): CHC: Insufficient funds happens here. -// Warning 6328: (262-291): CHC: Assertion violation happens here. +// Warning 9207: (184-194): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 9207: (203-213): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 8656: (184-199): CHC: Insufficient funds happens here.\nCounterexample:\n\nx = 100\na = 0x6532\nb = 0xffffffffffffffffffffffffffffffffffffed9d\n\nTransaction trace:\nC.constructor()\nC.f(100, 0x6532, 0xffffffffffffffffffffffffffffffffffffed9d) +// Warning 8656: (203-218): CHC: Insufficient funds happens here.\nCounterexample:\n\nx = 100\na = 0x08c0\nb = 0x7992\n\nTransaction trace:\nC.constructor()\nC.f(100, 0x08c0, 0x7992) +// Warning 6328: (262-291): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 100\na = 0x08c1\nb = 0x08c0\n\nTransaction trace:\nC.constructor()\nC.f(100, 0x08c1, 0x08c0) diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer_3.sol b/test/libsolidity/smtCheckerTests/types/address_transfer_3.sol index 3f9cc22c7bd6..b1bb4ed502fb 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer_3.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer_3.sol @@ -13,4 +13,5 @@ contract C // ==== // SMTEngine: all // ---- +// Warning 9207: (126-136): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Info 1391: CHC: 2 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol b/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol index 55a96026ee51..32bbaae1545f 100644 --- a/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol +++ b/test/libsolidity/smtCheckerTests/types/address_transfer_insufficient.sol @@ -12,6 +12,8 @@ contract C // SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 8656: (101-116): CHC: Insufficient funds happens here. -// Warning 8656: (120-136): CHC: Insufficient funds happens here. -// Warning 6328: (180-204): CHC: Assertion violation happens here. +// Warning 9207: (101-111): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 9207: (120-130): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 8656: (101-116): CHC: Insufficient funds happens here.\nCounterexample:\n\na = 0x0\nb = 0x0\n\nTransaction trace:\nC.constructor()\nC.f(0x0, 0x0) +// Warning 8656: (120-136): CHC: Insufficient funds happens here.\nCounterexample:\n\na = 0x0\nb = 0x0\n\nTransaction trace:\nC.constructor()\nC.f(0x0, 0x0) +// Warning 6328: (180-204): CHC: Assertion violation happens here.\nCounterexample:\n\na = 0x0476\nb = 0x0476\n\nTransaction trace:\nC.constructor()\nC.f(0x0476, 0x0476) diff --git a/test/libsolidity/smtCheckerTests/types/contract.sol b/test/libsolidity/smtCheckerTests/types/contract.sol index 0ddc3e6503c0..e1b0597fe243 100644 --- a/test/libsolidity/smtCheckerTests/types/contract.sol +++ b/test/libsolidity/smtCheckerTests/types/contract.sol @@ -8,4 +8,5 @@ contract C // SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (51-65): CHC: Assertion violation happens here. +// Warning 9170: (58-64): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. +// Warning 6328: (51-65): CHC: Assertion violation happens here.\nCounterexample:\n\nc = 0\nd = 1\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) diff --git a/test/libsolidity/smtCheckerTests/types/contract_2.sol b/test/libsolidity/smtCheckerTests/types/contract_2.sol index 2357852d5663..ed1ff0fcc9c2 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_2.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_2.sol @@ -13,4 +13,5 @@ contract C // SMTEngine: all // SMTIgnoreCex: yes // ---- -// Warning 6328: (76-90): CHC: Assertion violation happens here. +// Warning 9170: (83-89): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. +// Warning 6328: (76-90): CHC: Assertion violation happens here.\nCounterexample:\n\nc = 0\nd = 1\n\nTransaction trace:\nC.constructor()\nC.f(0, 1) diff --git a/test/libsolidity/smtCheckerTests/types/contract_3.sol b/test/libsolidity/smtCheckerTests/types/contract_3.sol index 657999c0b7fc..3dd1abe16447 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_3.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_3.sol @@ -9,4 +9,7 @@ contract C // ==== // SMTEngine: all // ---- +// Warning 9170: (64-70): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. +// Warning 9170: (83-89): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. +// Warning 9170: (101-107): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. // Info 1391: CHC: 1 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol b/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol index 0b395c1877c5..cf8911fe1c2c 100644 --- a/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol +++ b/test/libsolidity/smtCheckerTests/types/contract_address_conversion_2.sol @@ -10,4 +10,5 @@ contract C // ==== // SMTEngine: all // ---- +// Warning 9170: (121-127): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. // Info 1391: CHC: 2 verification condition(s) proved safe! Enable the model checker option "show proved safe" to see all of them. diff --git a/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings.sol b/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings.sol index da81a3bc6682..fbb9fd3b70ee 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings.sol @@ -2,3 +2,4 @@ pragma abicoder v2; pragma abicoder v1; // ---- // SyntaxError 3845: (34-53): ABI coder has already been selected for this source unit. +// Warning 9511: (34-53): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings_reverse.sol b/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings_reverse.sol index f06b2458c36d..a21b382ded01 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings_reverse.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings_reverse.sol @@ -1,4 +1,5 @@ pragma abicoder v1; pragma abicoder v2; // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // SyntaxError 3845: (20-39): ABI coder has already been selected for this source unit. diff --git a/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings_reverse_experimental.sol b/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings_reverse_experimental.sol index 855378e9ef60..6250dc8566b9 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings_reverse_experimental.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/conflicting_settings_reverse_experimental.sol @@ -1,4 +1,5 @@ pragma abicoder v1; pragma experimental ABIEncoderV2; // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // SyntaxError 8273: (20-53): ABI coder v1 has already been selected through "pragma abicoder v1". diff --git a/test/libsolidity/syntaxTests/abiEncoder/select_v1.sol b/test/libsolidity/syntaxTests/abiEncoder/select_v1.sol index 1beb5f0ec7a6..de56cfde9c20 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/select_v1.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/select_v1.sol @@ -1,2 +1,3 @@ pragma abicoder v1; // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/select_v1_quoted_string.sol b/test/libsolidity/syntaxTests/abiEncoder/select_v1_quoted_string.sol index a6c26efdc7e9..a0d156d7968f 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/select_v1_quoted_string.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/select_v1_quoted_string.sol @@ -1,2 +1,3 @@ pragma abicoder "v1"; // ---- +// Warning 9511: (0-21): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/selected_twice.sol b/test/libsolidity/syntaxTests/abiEncoder/selected_twice.sol index 424c2c7f2b89..f75ba02b7478 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/selected_twice.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/selected_twice.sol @@ -1,4 +1,6 @@ pragma abicoder v1; pragma abicoder v1; // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // SyntaxError 3845: (20-39): ABI coder has already been selected for this source unit. +// Warning 9511: (20-39): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_accessing_public_state_variable_via_v1_type.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_accessing_public_state_variable_via_v1_type.sol index 036a2597616c..c76ffb51cf47 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_accessing_public_state_variable_via_v1_type.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_accessing_public_state_variable_via_v1_type.sol @@ -16,3 +16,4 @@ contract D { // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_accessing_public_state_variable_via_v2_type.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_accessing_public_state_variable_via_v2_type.sol index feaf895e17ee..6c038b091ebe 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_accessing_public_state_variable_via_v2_type.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_accessing_public_state_variable_via_v2_type.sol @@ -14,5 +14,6 @@ contract D { } } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 7364: (222-260): Different number of components on the left hand side (1) than on the right hand side (2). // TypeError 9574: (222-260): Type uint256 is not implicitly convertible to expected type struct Item memory. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v1_library_function_accepting_storage_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v1_library_function_accepting_storage_struct.sol index 03fb9bae673b..b6e5d11f61cb 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v1_library_function_accepting_storage_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v1_library_function_accepting_storage_struct.sol @@ -22,3 +22,4 @@ contract Test { // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_constructor_accepting_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_constructor_accepting_struct.sol index 3ee6f75a17b9..827499d6f9d9 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_constructor_accepting_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_constructor_accepting_struct.sol @@ -18,4 +18,5 @@ contract Test { } } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2443: (B:91-100): The type of this parameter, struct C.Item memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_accepting_struct_via_named_argument.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_accepting_struct_via_named_argument.sol index c02faba189bc..9174affc96aa 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_accepting_struct_via_named_argument.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_accepting_struct_via_named_argument.sol @@ -18,4 +18,5 @@ contract Test { } } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2443: (B:119-129): The type of this parameter, struct C.Item memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_pointer_accepting_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_pointer_accepting_struct.sol index 674ce4e32a8c..514576b50673 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_pointer_accepting_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_pointer_accepting_struct.sol @@ -20,4 +20,5 @@ contract Test { } } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2443: (B:166-175): The type of this parameter, struct C.Item memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_dynamic_string_array.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_dynamic_string_array.sol index 5379bdb50356..42e52ece42f8 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_dynamic_string_array.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_dynamic_string_array.sol @@ -14,4 +14,5 @@ contract D { } } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2428: (B:85-105): The type of return parameter 1, string[] memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_struct.sol index d2b0e1ffe256..fa43f8830269 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_struct.sol @@ -18,4 +18,5 @@ contract Test { } } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2428: (B:90-112): The type of return parameter 1, struct C.Item memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_struct_with_dynamic_array.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_struct_with_dynamic_array.sol index 0aa9973aa702..313d3b8de822 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_struct_with_dynamic_array.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_contract_function_returning_struct_with_dynamic_array.sol @@ -18,4 +18,5 @@ contract Test { } } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2428: (B:90-112): The type of return parameter 1, struct C.Item memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_event_accepting_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_event_accepting_struct.sol index e868418683e8..5308821f616b 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_event_accepting_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_event_accepting_struct.sol @@ -17,4 +17,5 @@ contract Test { } } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2443: (B:94-104): The type of this parameter, struct L.Item memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_attached_function_returning_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_attached_function_returning_struct.sol index bb3651d4f8b2..46f227dad8a7 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_attached_function_returning_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_attached_function_returning_struct.sol @@ -20,4 +20,5 @@ contract D { } } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2428: (B:106-117): The type of return parameter 1, struct L.Item memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_function_accepting_storage_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_function_accepting_storage_struct.sol index 01d9658ce2cf..1cccd5084e1f 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_function_accepting_storage_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_function_accepting_storage_struct.sol @@ -22,3 +22,4 @@ contract Test { // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_function_returning_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_function_returning_struct.sol index c6ba7522596b..82baeacbeff8 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_function_returning_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_library_function_returning_struct.sol @@ -18,4 +18,5 @@ contract Test { } } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2428: (B:90-97): The type of return parameter 1, struct L.Item memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_modifier.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_modifier.sol index ef066593c4bc..fec2dce64a2a 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_modifier.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_call_to_v2_modifier.sol @@ -28,3 +28,4 @@ contract C is B { // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_constructor_with_v2_modifier.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_constructor_with_v2_modifier.sol index b937d1e2d1a2..63f83b49107b 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_constructor_with_v2_modifier.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_constructor_with_v2_modifier.sol @@ -35,3 +35,5 @@ contract D is C { // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 9511: (C:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_calling_v2_function.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_calling_v2_function.sol index 9743d5318ca0..5565675726d4 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_calling_v2_function.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_calling_v2_function.sol @@ -26,3 +26,4 @@ contract C is B {} // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_event.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_event.sol index e4492a4ef742..89a92dfc519a 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_event.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_event.sol @@ -16,3 +16,4 @@ contract D is C {} // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_function_accepting_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_function_accepting_struct.sol index c37bad41c274..97fc1aa34364 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_function_accepting_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_function_accepting_struct.sol @@ -14,4 +14,5 @@ import "A"; contract D is C {} // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 6594: (B:33-51): Contract "D" does not use ABI coder v2 but wants to inherit from a contract which uses types that require it. Use "pragma abicoder v2;" for the inheriting contract as well to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_function_returning_struct.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_function_returning_struct.sol index f25754246930..997221e1eac5 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_function_returning_struct.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_defining_v2_function_returning_struct.sol @@ -14,4 +14,5 @@ import "A"; contract D is C {} // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 6594: (B:33-51): Contract "D" does not use ABI coder v2 but wants to inherit from a contract which uses types that require it. Use "pragma abicoder v2;" for the inheriting contract as well to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_emitting_v2_event.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_emitting_v2_event.sol index 5ae4cb0ed836..34a7eafd87ca 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_emitting_v2_event.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_inheritance_from_contract_emitting_v2_event.sol @@ -22,3 +22,4 @@ contract D is C {} // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_modifier_overriding_v2_modifier.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_modifier_overriding_v2_modifier.sol index 9a809b50a2fe..390ad1888967 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_modifier_overriding_v2_modifier.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_modifier_overriding_v2_modifier.sol @@ -30,3 +30,5 @@ contract C is B { // ==== // bytecodeFormat: legacy // ---- +// Warning 8429: (A:156-234): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v1_v2_v1_modifier_mix.sol b/test/libsolidity/syntaxTests/abiEncoder/v1_v2_v1_modifier_mix.sol index 6665c42efd49..4906e03f327a 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v1_v2_v1_modifier_mix.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v1_v2_v1_modifier_mix.sol @@ -55,3 +55,6 @@ contract X { // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (V1A:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 9511: (V1B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 9511: (C:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/abiEncoder/v2_v1_v1_modifier_sandwich.sol b/test/libsolidity/syntaxTests/abiEncoder/v2_v1_v1_modifier_sandwich.sol index 45fed616c08e..a8611fd77901 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v2_v1_v1_modifier_sandwich.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v2_v1_v1_modifier_sandwich.sol @@ -29,4 +29,6 @@ contract C is B { {} } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 9511: (C:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2428: (B:80-102): The type of return parameter 1, struct Data memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/abiEncoder/v2_v1_v2_modifier_sandwich.sol b/test/libsolidity/syntaxTests/abiEncoder/v2_v1_v2_modifier_sandwich.sol index 5bc10f53eddb..a004810ac379 100644 --- a/test/libsolidity/syntaxTests/abiEncoder/v2_v1_v2_modifier_sandwich.sol +++ b/test/libsolidity/syntaxTests/abiEncoder/v2_v1_v2_modifier_sandwich.sol @@ -30,4 +30,5 @@ contract C is B { {} } // ---- +// Warning 9511: (B:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2428: (B:80-102): The type of return parameter 1, struct Data memory, is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/array/calldata_multi_dynamic_V1.sol b/test/libsolidity/syntaxTests/array/calldata_multi_dynamic_V1.sol index 754270ecf449..2ffeb4c38cbb 100644 --- a/test/libsolidity/syntaxTests/array/calldata_multi_dynamic_V1.sol +++ b/test/libsolidity/syntaxTests/array/calldata_multi_dynamic_V1.sol @@ -4,5 +4,6 @@ contract Test { function g(uint[][1] calldata) external { } } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 4957: (51-68): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. // TypeError 4957: (98-116): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/constructor/nonabiv2_type.sol b/test/libsolidity/syntaxTests/constructor/nonabiv2_type.sol index 8e0c323b8c33..c6c4ec0f11a7 100644 --- a/test/libsolidity/syntaxTests/constructor/nonabiv2_type.sol +++ b/test/libsolidity/syntaxTests/constructor/nonabiv2_type.sol @@ -3,4 +3,5 @@ contract C { constructor(uint[][][] memory t) {} } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 4957: (46-65): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. Alternatively, make the contract abstract and supply the constructor arguments from a derived contract. diff --git a/test/libsolidity/syntaxTests/constructor/nonabiv2_type_abstract.sol b/test/libsolidity/syntaxTests/constructor/nonabiv2_type_abstract.sol index ca52859ff928..0b07c5ceec57 100644 --- a/test/libsolidity/syntaxTests/constructor/nonabiv2_type_abstract.sol +++ b/test/libsolidity/syntaxTests/constructor/nonabiv2_type_abstract.sol @@ -5,3 +5,4 @@ abstract contract C { // ==== // bytecodeFormat: legacy // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/controlFlow/modifiers/implemented_without_placeholder.sol b/test/libsolidity/syntaxTests/controlFlow/modifiers/implemented_without_placeholder.sol index 08b4ef12efc0..86406896ba28 100644 --- a/test/libsolidity/syntaxTests/controlFlow/modifiers/implemented_without_placeholder.sol +++ b/test/libsolidity/syntaxTests/controlFlow/modifiers/implemented_without_placeholder.sol @@ -6,3 +6,4 @@ abstract contract A { } // ---- // SyntaxError 2883: (129-132): Modifier body does not contain '_'. +// Warning 8429: (106-132): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/controlFlow/modifiers/modifier_different_functions.sol b/test/libsolidity/syntaxTests/controlFlow/modifiers/modifier_different_functions.sol index 63d9153692c2..64b9997fa461 100644 --- a/test/libsolidity/syntaxTests/controlFlow/modifiers/modifier_different_functions.sol +++ b/test/libsolidity/syntaxTests/controlFlow/modifiers/modifier_different_functions.sol @@ -9,4 +9,5 @@ contract A { } } // ---- +// Warning 8429: (140-172): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3464: (118-132): This variable is of storage pointer type and can be returned without prior assignment, which would lead to undefined behaviour. diff --git a/test/libsolidity/syntaxTests/controlFlow/modifiers/modifier_override.sol b/test/libsolidity/syntaxTests/controlFlow/modifiers/modifier_override.sol index 3c5eb80ee439..67fdd5a1bab6 100644 --- a/test/libsolidity/syntaxTests/controlFlow/modifiers/modifier_override.sol +++ b/test/libsolidity/syntaxTests/controlFlow/modifiers/modifier_override.sol @@ -13,5 +13,6 @@ contract B is A { } } // ---- +// Warning 8429: (71-115): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // Warning 5740: (65-69): Unreachable code. // TypeError 3464: (49-63): This variable is of storage pointer type and can be returned without prior assignment, which would lead to undefined behaviour. diff --git a/test/libsolidity/syntaxTests/controlFlow/modifiers/non_implemented_modifier.sol b/test/libsolidity/syntaxTests/controlFlow/modifiers/non_implemented_modifier.sol index 61aede05eb5a..a656d481cc99 100644 --- a/test/libsolidity/syntaxTests/controlFlow/modifiers/non_implemented_modifier.sol +++ b/test/libsolidity/syntaxTests/controlFlow/modifiers/non_implemented_modifier.sol @@ -4,3 +4,5 @@ abstract contract A { } modifier mod() virtual; } +// ---- +// Warning 8429: (106-129): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_comparison.sol b/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_comparison.sol index 708713b6b0ff..8e4979e8539e 100644 --- a/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_comparison.sol +++ b/test/libsolidity/syntaxTests/conversion/implicit_conversion_of_super_in_comparison.sol @@ -21,7 +21,10 @@ contract C { // ---- // TypeError 2271: (144-157): Built-in binary operator != cannot be applied to types type(contract super C) and contract C. // TypeError 2271: (167-180): Built-in binary operator != cannot be applied to types contract C and type(contract super C). +// Warning 9170: (167-180): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. // TypeError 2271: (254-264): Built-in binary operator != cannot be applied to types type(contract super C) and contract C. // TypeError 2271: (274-284): Built-in binary operator != cannot be applied to types contract C and type(contract super C). +// Warning 9170: (274-284): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. // TypeError 2271: (349-359): Built-in binary operator != cannot be applied to types type(contract super C) and contract D. // TypeError 2271: (369-379): Built-in binary operator != cannot be applied to types contract D and type(contract super C). +// Warning 9170: (369-379): Comparison of variables of contract type will be deprecated in the next breaking version (0.9). Instead, use an explicit cast to address type. diff --git a/test/libsolidity/syntaxTests/errors/no_structs_in_abiv1.sol b/test/libsolidity/syntaxTests/errors/no_structs_in_abiv1.sol index 8727a2852913..ce319ca4a241 100644 --- a/test/libsolidity/syntaxTests/errors/no_structs_in_abiv1.sol +++ b/test/libsolidity/syntaxTests/errors/no_structs_in_abiv1.sol @@ -4,4 +4,5 @@ contract C { error MyError(S); } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3061: (70-71): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/events/event_nested_array.sol b/test/libsolidity/syntaxTests/events/event_nested_array.sol index 2491dae6e824..9ff06236894c 100644 --- a/test/libsolidity/syntaxTests/events/event_nested_array.sol +++ b/test/libsolidity/syntaxTests/events/event_nested_array.sol @@ -3,4 +3,5 @@ contract c { event E(uint[][]); } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3061: (45-53): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/events/event_nested_array_in_struct.sol b/test/libsolidity/syntaxTests/events/event_nested_array_in_struct.sol index ee868a7152ad..e54a978bad15 100644 --- a/test/libsolidity/syntaxTests/events/event_nested_array_in_struct.sol +++ b/test/libsolidity/syntaxTests/events/event_nested_array_in_struct.sol @@ -4,4 +4,5 @@ contract c { event E(S); } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3061: (81-82): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/events/event_struct.sol b/test/libsolidity/syntaxTests/events/event_struct.sol index ac6355fe0744..d10391abccdf 100644 --- a/test/libsolidity/syntaxTests/events/event_struct.sol +++ b/test/libsolidity/syntaxTests/events/event_struct.sol @@ -4,4 +4,5 @@ contract c { event E(S); } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3061: (71-72): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/events/event_struct_indexed.sol b/test/libsolidity/syntaxTests/events/event_struct_indexed.sol index 7e3393400c79..9ed600fc300f 100644 --- a/test/libsolidity/syntaxTests/events/event_struct_indexed.sol +++ b/test/libsolidity/syntaxTests/events/event_struct_indexed.sol @@ -4,4 +4,5 @@ contract c { event E(S indexed); } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3061: (71-80): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/getter/nested_structs.sol b/test/libsolidity/syntaxTests/getter/nested_structs.sol index 36886bacffeb..cf48d9f54486 100644 --- a/test/libsolidity/syntaxTests/getter/nested_structs.sol +++ b/test/libsolidity/syntaxTests/getter/nested_structs.sol @@ -9,4 +9,5 @@ contract C { mapping(uint256 => X) public m; } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2763: (108-138): The following types are only supported for getters in ABI coder v2: struct C.Y memory. Either remove "public" or use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/immutable/inheritance_virtual_modifiers.sol b/test/libsolidity/syntaxTests/immutable/inheritance_virtual_modifiers.sol index 31f510dccca5..36af3c91d7ed 100644 --- a/test/libsolidity/syntaxTests/immutable/inheritance_virtual_modifiers.sol +++ b/test/libsolidity/syntaxTests/immutable/inheritance_virtual_modifiers.sol @@ -17,3 +17,5 @@ contract C is B { _; f(x); } } +// ---- +// Warning 8429: (88-137): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/imports/inheritance_abi_encoder_mismatch_1.sol b/test/libsolidity/syntaxTests/imports/inheritance_abi_encoder_mismatch_1.sol index 891f57e8d334..37857519ed8e 100644 --- a/test/libsolidity/syntaxTests/imports/inheritance_abi_encoder_mismatch_1.sol +++ b/test/libsolidity/syntaxTests/imports/inheritance_abi_encoder_mismatch_1.sol @@ -17,4 +17,5 @@ pragma abicoder v1; import "./B.sol"; contract C is B { } // ---- +// Warning 9511: (C.sol:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 6594: (C.sol:38-57): Contract "C" does not use ABI coder v2 but wants to inherit from a contract which uses types that require it. Use "pragma abicoder v2;" for the inheriting contract as well to enable the feature. diff --git a/test/libsolidity/syntaxTests/imports/inheritance_abi_encoder_mismatch_2.sol b/test/libsolidity/syntaxTests/imports/inheritance_abi_encoder_mismatch_2.sol index c92221f3accd..e20103785049 100644 --- a/test/libsolidity/syntaxTests/imports/inheritance_abi_encoder_mismatch_2.sol +++ b/test/libsolidity/syntaxTests/imports/inheritance_abi_encoder_mismatch_2.sol @@ -16,4 +16,6 @@ pragma abicoder v1; import "./B.sol"; contract C is B { } // ---- +// Warning 9511: (B.sol:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 9511: (C.sol:0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 6594: (B.sol:38-57): Contract "B" does not use ABI coder v2 but wants to inherit from a contract which uses types that require it. Use "pragma abicoder v2;" for the inheriting contract as well to enable the feature. diff --git a/test/libsolidity/syntaxTests/inheritance/dataLocation/modifier_parameter_data_location_change_illegal_internal.sol b/test/libsolidity/syntaxTests/inheritance/dataLocation/modifier_parameter_data_location_change_illegal_internal.sol index a4856d9f0335..e455b784d0b4 100644 --- a/test/libsolidity/syntaxTests/inheritance/dataLocation/modifier_parameter_data_location_change_illegal_internal.sol +++ b/test/libsolidity/syntaxTests/inheritance/dataLocation/modifier_parameter_data_location_change_illegal_internal.sol @@ -10,4 +10,5 @@ contract B is A { } } // ---- +// Warning 8429: (26-66): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 1078: (153-214): Override changes modifier signature. diff --git a/test/libsolidity/syntaxTests/inheritance/override/modifier_ambiguous.sol b/test/libsolidity/syntaxTests/inheritance/override/modifier_ambiguous.sol index 00aeed0cda6f..5ac6924b7237 100644 --- a/test/libsolidity/syntaxTests/inheritance/override/modifier_ambiguous.sol +++ b/test/libsolidity/syntaxTests/inheritance/override/modifier_ambiguous.sol @@ -8,3 +8,5 @@ contract C is A, B { modifier f() override(A,B) { _; } } // ---- +// Warning 8429: (17-44): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (64-91): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/inheritance/override/modifier_ambiguous_fail.sol b/test/libsolidity/syntaxTests/inheritance/override/modifier_ambiguous_fail.sol index 7332f0817c18..0ebf600fe842 100644 --- a/test/libsolidity/syntaxTests/inheritance/override/modifier_ambiguous_fail.sol +++ b/test/libsolidity/syntaxTests/inheritance/override/modifier_ambiguous_fail.sol @@ -7,4 +7,6 @@ contract B { contract C is A, B { } // ---- +// Warning 8429: (17-44): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (64-91): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 6480: (94-116): Derived contract must override modifier "f". Two or more base classes define modifier with same name. diff --git a/test/libsolidity/syntaxTests/inheritance/override/modifier_inherited_different_signature.sol b/test/libsolidity/syntaxTests/inheritance/override/modifier_inherited_different_signature.sol index 428f38e62bf0..5d9bc4a2e18e 100644 --- a/test/libsolidity/syntaxTests/inheritance/override/modifier_inherited_different_signature.sol +++ b/test/libsolidity/syntaxTests/inheritance/override/modifier_inherited_different_signature.sol @@ -7,4 +7,6 @@ contract B { contract C is A, B { } // ---- +// Warning 8429: (17-50): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (70-97): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 6480: (100-122): Derived contract must override modifier "f". Two or more base classes define modifier with same name. diff --git a/test/libsolidity/syntaxTests/inheritance/override/modifier_inherited_different_signature_override.sol b/test/libsolidity/syntaxTests/inheritance/override/modifier_inherited_different_signature_override.sol index 7791ea725048..5485f40c1c21 100644 --- a/test/libsolidity/syntaxTests/inheritance/override/modifier_inherited_different_signature_override.sol +++ b/test/libsolidity/syntaxTests/inheritance/override/modifier_inherited_different_signature_override.sol @@ -8,4 +8,7 @@ contract C is A, B { modifier f() virtual override(A, B) { _; } } // ---- +// Warning 8429: (17-50): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (70-97): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (125-167): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 1078: (125-167): Override changes modifier signature. diff --git a/test/libsolidity/syntaxTests/inheritance/override/nonintermediate_common_base_and_unique_implementation_modifier.sol b/test/libsolidity/syntaxTests/inheritance/override/nonintermediate_common_base_and_unique_implementation_modifier.sol index deda228fa0b5..9b09e07f54ce 100644 --- a/test/libsolidity/syntaxTests/inheritance/override/nonintermediate_common_base_and_unique_implementation_modifier.sol +++ b/test/libsolidity/syntaxTests/inheritance/override/nonintermediate_common_base_and_unique_implementation_modifier.sol @@ -16,4 +16,7 @@ contract B is IJ } contract C is A, B {} // ---- +// Warning 8429: (14-41): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (58-85): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (111-154): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 6480: (229-250): Derived contract must override modifier "f". Two or more base classes define modifier with same name. diff --git a/test/libsolidity/syntaxTests/inheritance/virtual/modifier_virtual_err.sol b/test/libsolidity/syntaxTests/inheritance/virtual/modifier_virtual_err.sol index 85824c86b776..77a2bf20f839 100644 --- a/test/libsolidity/syntaxTests/inheritance/virtual/modifier_virtual_err.sol +++ b/test/libsolidity/syntaxTests/inheritance/virtual/modifier_virtual_err.sol @@ -4,4 +4,5 @@ library test { } } // ---- +// Warning 8429: (19-38): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3275: (19-38): Modifiers in a library cannot be virtual. diff --git a/test/libsolidity/syntaxTests/inheritance/virtual/simple.sol b/test/libsolidity/syntaxTests/inheritance/virtual/simple.sol index 892118a13d2a..a5de6d52a8f1 100644 --- a/test/libsolidity/syntaxTests/inheritance/virtual/simple.sol +++ b/test/libsolidity/syntaxTests/inheritance/virtual/simple.sol @@ -5,3 +5,4 @@ contract C modifier modi() virtual {_;} } // ---- +// Warning 8429: (83-111): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/inlineAssembly/memory_safe_dialect_string_and_comment.sol b/test/libsolidity/syntaxTests/inlineAssembly/memory_safe_dialect_string_and_comment.sol index 9d0fd3e1c786..f630cff98c77 100644 --- a/test/libsolidity/syntaxTests/inlineAssembly/memory_safe_dialect_string_and_comment.sol +++ b/test/libsolidity/syntaxTests/inlineAssembly/memory_safe_dialect_string_and_comment.sol @@ -5,3 +5,4 @@ function f() pure { } // ---- // Warning 8544: (63-104): Inline assembly marked as memory safe using both a NatSpec tag and an assembly flag. If you are not concerned with backwards compatibility, only use the assembly flag, otherwise only use the NatSpec tag. +// Warning 2424: (63-104): Natspec memory safe annotation for inline assembly is deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/inlineAssembly/natspec_multi.sol b/test/libsolidity/syntaxTests/inlineAssembly/natspec_multi.sol index 945d62b0695f..8b3cc3e885f7 100644 --- a/test/libsolidity/syntaxTests/inlineAssembly/natspec_multi.sol +++ b/test/libsolidity/syntaxTests/inlineAssembly/natspec_multi.sol @@ -15,9 +15,11 @@ function f() pure { // Warning 6269: (189-200): Unexpected NatSpec tag "after" with value "bogus-value" in inline assembly. // Warning 6269: (189-200): Unexpected NatSpec tag "before" with value "bogus-value" in inline assembly. // Warning 8787: (189-200): Unexpected value for @solidity tag in inline assembly: a +// Warning 2424: (189-200): Natspec memory safe annotation for inline assembly is deprecated and scheduled for removal in the next breaking version (0.9). // Warning 8787: (189-200): Unexpected value for @solidity tag in inline assembly: b // Warning 8787: (189-200): Unexpected value for @solidity tag in inline assembly: c // Warning 8787: (189-200): Unexpected value for @solidity tag in inline assembly: d +// Warning 2424: (289-300): Natspec memory safe annotation for inline assembly is deprecated and scheduled for removal in the next breaking version (0.9). // Warning 8787: (289-300): Unexpected value for @solidity tag in inline assembly: a // Warning 4377: (289-300): Value for @solidity tag in inline assembly specified multiple times: a // Warning 4377: (289-300): Value for @solidity tag in inline assembly specified multiple times: memory-safe-assembly diff --git a/test/libsolidity/syntaxTests/inlineAssembly/natspec_multi_swallowed.sol b/test/libsolidity/syntaxTests/inlineAssembly/natspec_multi_swallowed.sol index 74be1232ddee..86a47af55a1d 100644 --- a/test/libsolidity/syntaxTests/inlineAssembly/natspec_multi_swallowed.sol +++ b/test/libsolidity/syntaxTests/inlineAssembly/natspec_multi_swallowed.sol @@ -14,6 +14,7 @@ function f() pure { // ---- // Warning 6269: (177-188): Unexpected NatSpec tag "after" with value "bogus-value" in inline assembly. // Warning 6269: (177-188): Unexpected NatSpec tag "before" with value "@solidity a memory-safe-assembly b c d" in inline assembly. +// Warning 2424: (277-288): Natspec memory safe annotation for inline assembly is deprecated and scheduled for removal in the next breaking version (0.9). // Warning 8787: (277-288): Unexpected value for @solidity tag in inline assembly: a // Warning 4377: (277-288): Value for @solidity tag in inline assembly specified multiple times: a // Warning 4377: (277-288): Value for @solidity tag in inline assembly specified multiple times: memory-safe-assembly diff --git a/test/libsolidity/syntaxTests/modifiers/definition_in_contract.sol b/test/libsolidity/syntaxTests/modifiers/definition_in_contract.sol index 9b0a805adf26..1d338dbe38fa 100644 --- a/test/libsolidity/syntaxTests/modifiers/definition_in_contract.sol +++ b/test/libsolidity/syntaxTests/modifiers/definition_in_contract.sol @@ -9,3 +9,6 @@ abstract contract A { modifier muv virtual; } // ---- +// Warning 8429: (39-65): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (117-143): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (148-169): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/modifiers/definition_in_contract_unimplemented.sol b/test/libsolidity/syntaxTests/modifiers/definition_in_contract_unimplemented.sol index 2018ae4eabbd..2b831788fda0 100644 --- a/test/libsolidity/syntaxTests/modifiers/definition_in_contract_unimplemented.sol +++ b/test/libsolidity/syntaxTests/modifiers/definition_in_contract_unimplemented.sol @@ -3,5 +3,6 @@ contract C { modifier muv virtual; } // ---- +// Warning 8429: (34-55): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3656: (0-57): Contract "C" should be marked as abstract. // TypeError 8063: (17-29): Modifiers without implementation must be marked virtual. diff --git a/test/libsolidity/syntaxTests/modifiers/definition_in_interface.sol b/test/libsolidity/syntaxTests/modifiers/definition_in_interface.sol index 2f8281bdeb83..8e5158dde8c4 100644 --- a/test/libsolidity/syntaxTests/modifiers/definition_in_interface.sol +++ b/test/libsolidity/syntaxTests/modifiers/definition_in_interface.sol @@ -5,6 +5,8 @@ interface I { modifier muv virtual; } // ---- +// Warning 8429: (57-83): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (88-109): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 6408: (18-35): Modifiers cannot be defined or declared in interfaces. // TypeError 6408: (40-52): Modifiers cannot be defined or declared in interfaces. // TypeError 8063: (40-52): Modifiers without implementation must be marked virtual. diff --git a/test/libsolidity/syntaxTests/modifiers/definition_in_library.sol b/test/libsolidity/syntaxTests/modifiers/definition_in_library.sol index 6acbf3a0f603..389f79c1458b 100644 --- a/test/libsolidity/syntaxTests/modifiers/definition_in_library.sol +++ b/test/libsolidity/syntaxTests/modifiers/definition_in_library.sol @@ -2,4 +2,5 @@ library L { modifier mv virtual { _; } } // ---- +// Warning 8429: (16-42): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3275: (16-42): Modifiers in a library cannot be virtual. diff --git a/test/libsolidity/syntaxTests/modifiers/definition_in_library_unimplemented.sol b/test/libsolidity/syntaxTests/modifiers/definition_in_library_unimplemented.sol index 5fbc35682258..d826e3789719 100644 --- a/test/libsolidity/syntaxTests/modifiers/definition_in_library_unimplemented.sol +++ b/test/libsolidity/syntaxTests/modifiers/definition_in_library_unimplemented.sol @@ -3,5 +3,6 @@ library L { modifier muv virtual; } // ---- +// Warning 8429: (33-54): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 8063: (16-28): Modifiers without implementation must be marked virtual. // TypeError 3275: (33-54): Modifiers in a library cannot be virtual. diff --git a/test/libsolidity/syntaxTests/modifiers/empty_modifier_body.sol b/test/libsolidity/syntaxTests/modifiers/empty_modifier_body.sol index 0c0e821f5612..22b21834bb75 100644 --- a/test/libsolidity/syntaxTests/modifiers/empty_modifier_body.sol +++ b/test/libsolidity/syntaxTests/modifiers/empty_modifier_body.sol @@ -13,3 +13,5 @@ contract D is C { } } // ---- +// Warning 8429: (22-51): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (134-153): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/modifiers/empty_modifier_err.sol b/test/libsolidity/syntaxTests/modifiers/empty_modifier_err.sol index e9e03f30423b..2b087d8ecd20 100644 --- a/test/libsolidity/syntaxTests/modifiers/empty_modifier_err.sol +++ b/test/libsolidity/syntaxTests/modifiers/empty_modifier_err.sol @@ -5,6 +5,8 @@ contract C is B { } abstract contract D {modifier m;} // ---- +// Warning 8429: (12-31): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (55-74): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3656: (0-32): Contract "A" should be marked as abstract. // TypeError 3656: (76-95): Contract "C" should be marked as abstract. // TypeError 8063: (118-129): Modifiers without implementation must be marked virtual. diff --git a/test/libsolidity/syntaxTests/modifiers/legal_modifier_override.sol b/test/libsolidity/syntaxTests/modifiers/legal_modifier_override.sol index 62356abb133c..6b479752abc7 100644 --- a/test/libsolidity/syntaxTests/modifiers/legal_modifier_override.sol +++ b/test/libsolidity/syntaxTests/modifiers/legal_modifier_override.sol @@ -1,3 +1,4 @@ contract A { modifier mod(uint a) virtual { _; } } contract B is A { modifier mod(uint a) override { _; } } // ---- +// Warning 8429: (13-48): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/modifiers/modifier_abstract_override.sol b/test/libsolidity/syntaxTests/modifiers/modifier_abstract_override.sol index dd3ef4499fdf..5ca07a0a9c9c 100644 --- a/test/libsolidity/syntaxTests/modifiers/modifier_abstract_override.sol +++ b/test/libsolidity/syntaxTests/modifiers/modifier_abstract_override.sol @@ -8,4 +8,6 @@ contract C is B { function f() m public {} } // ---- +// Warning 8429: (17-44): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (78-108): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 4593: (78-108): Overriding an implemented modifier with an unimplemented modifier is not allowed. diff --git a/test/libsolidity/syntaxTests/modifiers/multiple_inheritance_unimplemented_override.sol b/test/libsolidity/syntaxTests/modifiers/multiple_inheritance_unimplemented_override.sol index 81e1c3565b80..d491d4f34892 100644 --- a/test/libsolidity/syntaxTests/modifiers/multiple_inheritance_unimplemented_override.sol +++ b/test/libsolidity/syntaxTests/modifiers/multiple_inheritance_unimplemented_override.sol @@ -9,3 +9,5 @@ contract C is A, B { function f() m public {} } // ---- +// Warning 8429: (17-44): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (73-94): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/modifiers/unimplemented_function_and_modifier.sol b/test/libsolidity/syntaxTests/modifiers/unimplemented_function_and_modifier.sol index bf823748c85b..0366856178e9 100644 --- a/test/libsolidity/syntaxTests/modifiers/unimplemented_function_and_modifier.sol +++ b/test/libsolidity/syntaxTests/modifiers/unimplemented_function_and_modifier.sol @@ -26,6 +26,7 @@ contract E is A { modifier mod() override { _;} } // ---- +// Warning 8429: (110-133): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 3656: (137-254): Contract "B" should be marked as abstract. // TypeError 3656: (256-344): Contract "C" should be marked as abstract. // TypeError 3656: (346-466): Contract "D" should be marked as abstract. diff --git a/test/libsolidity/syntaxTests/modifiers/unimplemented_override_unimplemented.sol b/test/libsolidity/syntaxTests/modifiers/unimplemented_override_unimplemented.sol index ae041ebfc61b..3c14a4bc8a12 100644 --- a/test/libsolidity/syntaxTests/modifiers/unimplemented_override_unimplemented.sol +++ b/test/libsolidity/syntaxTests/modifiers/unimplemented_override_unimplemented.sol @@ -9,3 +9,6 @@ abstract contract C is B { function f() m public {} } // ---- +// Warning 8429: (26-47): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (81-111): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (145-175): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/modifiers/use_unimplemented_from_base.sol b/test/libsolidity/syntaxTests/modifiers/use_unimplemented_from_base.sol index 6d6423e7e133..ad31b6fdccf9 100644 --- a/test/libsolidity/syntaxTests/modifiers/use_unimplemented_from_base.sol +++ b/test/libsolidity/syntaxTests/modifiers/use_unimplemented_from_base.sol @@ -6,3 +6,5 @@ contract B is A { modifier m() virtual override { _; } } // ---- +// Warning 8429: (26-47): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (101-137): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/modifiers/use_unimplemented_on_overridden_func.sol b/test/libsolidity/syntaxTests/modifiers/use_unimplemented_on_overridden_func.sol index 5f6de4ce8302..1a25517da462 100644 --- a/test/libsolidity/syntaxTests/modifiers/use_unimplemented_on_overridden_func.sol +++ b/test/libsolidity/syntaxTests/modifiers/use_unimplemented_on_overridden_func.sol @@ -6,3 +6,4 @@ abstract contract B is A { function f() public override {} } // ---- +// Warning 8429: (26-47): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). diff --git a/test/libsolidity/syntaxTests/modifiers/use_unimplemented_static.sol b/test/libsolidity/syntaxTests/modifiers/use_unimplemented_static.sol index a6fcd7eafae3..af252f31cfa7 100644 --- a/test/libsolidity/syntaxTests/modifiers/use_unimplemented_static.sol +++ b/test/libsolidity/syntaxTests/modifiers/use_unimplemented_static.sol @@ -9,4 +9,6 @@ contract C is A, B { function f() B.m public {} } // ---- +// Warning 8429: (17-44): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). +// Warning 8429: (73-94): Virtual modifiers are deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 1835: (174-177): Cannot call unimplemented modifier. The modifier has no implementation in the referenced contract. Refer to it by its unqualified name if you want to call the implementation from the most derived contract. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/045_returning_multi_dimensional_arrays.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/045_returning_multi_dimensional_arrays.sol index c9075a4cd3bf..4fb0d0529116 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/045_returning_multi_dimensional_arrays.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/045_returning_multi_dimensional_arrays.sol @@ -3,4 +3,5 @@ contract C { function f() public pure returns (string[][] memory) {} } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 4957: (71-88): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/046_returning_multi_dimensional_static_arrays.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/046_returning_multi_dimensional_static_arrays.sol index ee8c7f18d3c4..8731d17a988f 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/046_returning_multi_dimensional_static_arrays.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/046_returning_multi_dimensional_static_arrays.sol @@ -3,4 +3,5 @@ contract C { function f() public pure returns (uint[][2] memory) {} } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 4957: (71-87): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/048_returning_arrays_in_structs_arrays.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/048_returning_arrays_in_structs_arrays.sol index 77c77831e01d..236f114608cb 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/048_returning_arrays_in_structs_arrays.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/048_returning_arrays_in_structs_arrays.sol @@ -4,4 +4,5 @@ contract C { function f() public pure returns (S memory x) {} } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 4957: (100-110): This type is only supported in ABI coder v2. Use "pragma abicoder v2;" to enable the feature. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/346_unused_return_value_send.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/346_unused_return_value_send.sol index 80787c10c467..914f12b26a03 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/346_unused_return_value_send.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/346_unused_return_value_send.sol @@ -4,4 +4,5 @@ contract test { } } // ---- +// Warning 9207: (50-77): 'send' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Warning 5878: (50-80): Failure condition of 'send' ignored. Consider using 'transfer' instead. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/405_address_checksum_type_deduction.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/405_address_checksum_type_deduction.sol index 25acbfd42a3e..a2af6de5c7c6 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/405_address_checksum_type_deduction.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/405_address_checksum_type_deduction.sol @@ -4,3 +4,4 @@ contract C { } } // ---- +// Warning 9207: (47-107): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/413_address_methods.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/413_address_methods.sol index ad57224cdecb..c6b44a0567e8 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/413_address_methods.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/413_address_methods.sol @@ -10,3 +10,5 @@ contract C { } } // ---- +// Warning 9207: (227-236): 'send' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 9207: (249-262): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/466_does_not_error_transfer_payable_fallback.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/466_does_not_error_transfer_payable_fallback.sol index 642ae8360569..da7c39a5c97d 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/466_does_not_error_transfer_payable_fallback.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/466_does_not_error_transfer_payable_fallback.sol @@ -13,3 +13,4 @@ contract B { } } // ---- +// Warning 9207: (227-246): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/535_address_overload_resolution.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/535_address_overload_resolution.sol index a36aeed86364..3332535163ec 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/535_address_overload_resolution.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/535_address_overload_resolution.sol @@ -17,4 +17,5 @@ contract D { } } // ---- +// Warning 9207: (187-209): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Warning 2018: (17-134): Function state mutability can be restricted to view diff --git a/test/libsolidity/syntaxTests/nameAndTypeResolution/585_abi_decode_with_unsupported_types.sol b/test/libsolidity/syntaxTests/nameAndTypeResolution/585_abi_decode_with_unsupported_types.sol index abbf76182f9b..70ef38e15d36 100644 --- a/test/libsolidity/syntaxTests/nameAndTypeResolution/585_abi_decode_with_unsupported_types.sol +++ b/test/libsolidity/syntaxTests/nameAndTypeResolution/585_abi_decode_with_unsupported_types.sol @@ -6,4 +6,5 @@ contract C { } } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 9611: (118-119): Decoding type struct C.s memory not supported. diff --git a/test/libsolidity/syntaxTests/sizeLimits/bytecode_too_large_abiencoder_v1.sol b/test/libsolidity/syntaxTests/sizeLimits/bytecode_too_large_abiencoder_v1.sol index f3091ebf5351..0bd29b63d555 100644 --- a/test/libsolidity/syntaxTests/sizeLimits/bytecode_too_large_abiencoder_v1.sol +++ b/test/libsolidity/syntaxTests/sizeLimits/bytecode_too_large_abiencoder_v1.sol @@ -10,4 +10,5 @@ contract test { // EVMVersion: >=shanghai // bytecodeFormat: legacy // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // Warning 5574: (21-27154): Contract code size is 27205 bytes and exceeds 24576 bytes (a limit introduced in Spurious Dragon). This contract may not be deployable on Mainnet. Consider enabling the optimizer (with a low "runs" value!), turning off revert strings, or using libraries. diff --git a/test/libsolidity/syntaxTests/specialFunctions/abi_encodePacked_nested_dynamic_array.sol b/test/libsolidity/syntaxTests/specialFunctions/abi_encodePacked_nested_dynamic_array.sol index c10dc10f25e0..0354c431d495 100644 --- a/test/libsolidity/syntaxTests/specialFunctions/abi_encodePacked_nested_dynamic_array.sol +++ b/test/libsolidity/syntaxTests/specialFunctions/abi_encodePacked_nested_dynamic_array.sol @@ -5,4 +5,5 @@ contract C { } } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 9578: (89-119): Type not supported in packed mode. diff --git a/test/libsolidity/syntaxTests/specialFunctions/abi_encode_nested_dynamic_array.sol b/test/libsolidity/syntaxTests/specialFunctions/abi_encode_nested_dynamic_array.sol index 8c679258c5fe..01ed42e41809 100644 --- a/test/libsolidity/syntaxTests/specialFunctions/abi_encode_nested_dynamic_array.sol +++ b/test/libsolidity/syntaxTests/specialFunctions/abi_encode_nested_dynamic_array.sol @@ -5,4 +5,5 @@ contract C { } } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2056: (86-116): This type cannot be encoded. diff --git a/test/libsolidity/syntaxTests/specialFunctions/abi_encode_structs.sol b/test/libsolidity/syntaxTests/specialFunctions/abi_encode_structs.sol index a7d0e3dbe099..dda0b4c31408 100644 --- a/test/libsolidity/syntaxTests/specialFunctions/abi_encode_structs.sol +++ b/test/libsolidity/syntaxTests/specialFunctions/abi_encode_structs.sol @@ -12,6 +12,7 @@ contract C { } } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 2056: (151-152): This type cannot be encoded. // TypeError 2056: (154-155): This type cannot be encoded. // TypeError 9578: (220-221): Type not supported in packed mode. diff --git a/test/libsolidity/syntaxTests/specialFunctions/abidecode/abi_decode_nested_dynamic_array.sol b/test/libsolidity/syntaxTests/specialFunctions/abidecode/abi_decode_nested_dynamic_array.sol index 1981b04bf352..57135069bfb5 100644 --- a/test/libsolidity/syntaxTests/specialFunctions/abidecode/abi_decode_nested_dynamic_array.sol +++ b/test/libsolidity/syntaxTests/specialFunctions/abidecode/abi_decode_nested_dynamic_array.sol @@ -5,4 +5,5 @@ contract C { } } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 9611: (92-101): Decoding type uint256[][3] memory not supported. diff --git a/test/libsolidity/syntaxTests/specialFunctions/abidecode/abi_decode_struct.sol b/test/libsolidity/syntaxTests/specialFunctions/abidecode/abi_decode_struct.sol index dd981b54c9b5..db0e4d89c65d 100644 --- a/test/libsolidity/syntaxTests/specialFunctions/abidecode/abi_decode_struct.sol +++ b/test/libsolidity/syntaxTests/specialFunctions/abidecode/abi_decode_struct.sol @@ -9,4 +9,5 @@ contract C { } } // ---- +// Warning 9511: (0-19): ABI coder v1 is deprecated and scheduled for removal in the next breaking version (0.9). // TypeError 9611: (118-119): Decoding type struct S memory not supported. diff --git a/test/libsolidity/syntaxTests/viewPureChecker/builtin_functions.sol b/test/libsolidity/syntaxTests/viewPureChecker/builtin_functions.sol index 8f275321382a..86ac5438e39d 100644 --- a/test/libsolidity/syntaxTests/viewPureChecker/builtin_functions.sol +++ b/test/libsolidity/syntaxTests/viewPureChecker/builtin_functions.sol @@ -21,4 +21,6 @@ contract C { // ==== // bytecodeFormat: legacy // ---- +// Warning 9207: (47-69): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 9207: (90-108): 'send' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Warning 5159: (122-134): "selfdestruct" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode. diff --git a/test/libsolidity/syntaxTests/viewPureChecker/builtin_functions_view_fail.sol b/test/libsolidity/syntaxTests/viewPureChecker/builtin_functions_view_fail.sol index 4f9efcdb5dd4..7a76858f96c8 100644 --- a/test/libsolidity/syntaxTests/viewPureChecker/builtin_functions_view_fail.sol +++ b/test/libsolidity/syntaxTests/viewPureChecker/builtin_functions_view_fail.sol @@ -20,6 +20,8 @@ contract C { } } // ---- +// Warning 9207: (52-74): 'transfer' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. +// Warning 9207: (132-150): 'send' is deprecated and scheduled for removal in the next breaking version (0.9). It is encouraged to use 'call{value: }()' instead. // Warning 5159: (201-213): "selfdestruct" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode. // TypeError 8961: (52-77): Function cannot be declared as view because this expression (potentially) modifies the state. // TypeError 8961: (132-153): Function cannot be declared as view because this expression (potentially) modifies the state. diff --git a/test/libsolidity/syntaxTests/viewPureChecker/eof/builtin_functions.sol b/test/libsolidity/syntaxTests/viewPureChecker/eof/builtin_functions.sol index 91ea709fe2a6..456e30413aad 100644 --- a/test/libsolidity/syntaxTests/viewPureChecker/eof/builtin_functions.sol +++ b/test/libsolidity/syntaxTests/viewPureChecker/eof/builtin_functions.sol @@ -20,3 +20,5 @@ contract C { // ==== // bytecodeFormat: >=EOFv1 // ---- +// Warning 9207: (47-69): transfer will be deprecated in the next breaking version. +// Warning 9207: (90-108): send will be deprecated in the next breaking version.