Commit Graph
501 Commits
Author SHA1 Message Date
nishant-sachdeva a0d6c11860 Equality operator allowed for external function types 2022-01-19 15:20:31 +05:30
chriseth f94279a437 Use options struct for function type factory function. 2021-12-23 12:05:14 +01:00
chriseth 4fa8eee683 Use function names instead of members. 2021-12-23 11:55:33 +01:00
Marenz 7a96953e78 Implement typechecked abi.encodeCall() 2021-12-16 17:35:58 +01:00
vowchick 5d985a24ac Use range-v3 loops: delete boost includes
An addition to issue #10738, couldn't change boost::for_each to
std::for_each, doesn't compile.

Build successful
./scripts/test.sh successful
2021-10-16 11:54:46 +03:00
Marenz 4368da0201 Fix ICE when printing an error message related to mappings 2021-10-06 17:02:36 +02:00
chriseth 77932edb02 Consider non-external functions not left-aligned. 2021-09-29 11:44:17 +02:00
chriseth da5c5928fe Properly handle fixed-byte-like types. 2021-09-29 11:41:47 +02:00
chriseth 1531863835 Split Common.h into Numeric.h. 2021-09-23 15:27:29 +02:00
chriseth 50ce1f5ddd Disambiguate bytesRequired 2021-09-22 11:22:07 +02:00
hrkrshnn 48e16ceb88 Changing the UserDefinedValueType::toString to userdefined <name> 2021-09-15 17:25:23 +02:00
hrkrshnn de01822999 UserDefinedValueType: from simple name to canonical name. 2021-09-15 12:56:29 +02:00
hrkrshnn a1d4d0125d Allow UserDefinedValueType.uwrap (and wrap) as RHS of constant decl
Needed to make `MyType.unwrap` and `MyType.unwrap` as pure in the process. This change affected some
existing tests ("statement has no effect").
2021-09-13 11:53:05 +02:00
hrkrshnn 15452371d4 Types for UserDefinedValueType 2021-09-07 19:42:51 +02:00
Marenz 2b28f87abf Add type().min/max for enums 2021-09-01 15:02:02 +02:00
soroosh-sdi 0417ee2a21 Replace boost::adaptors with range-v3
Signed-off-by: soroosh-sdi <soroosh.sardari@gmail.com>
2021-08-24 13:07:26 +04:30
hrkrshnn 95091f6b58 Implemented block.basefee in Solidilty and basefee() in Yul.
Also added basefee to Yul grammar.
2021-08-09 16:18:08 +02:00
f0c5cdca9f [Sol->Yul] Adding util function to copy literal to storage.
Co-authored-by: Daniel Kirchner <daniel@ekpyron.org>

Co-authored-by: chriseth <chris@ethereum.org>
2021-05-05 11:33:03 +02:00
Djordje Mijovic b40c3bcc32 Allowing conversion from bytes to bytesNN in type checker. 2021-04-23 13:19:19 +02:00
anurag4u80 b2ca7916aa Replaced boost::adaptors::transformed 2021-04-08 17:38:14 +05:30
anurag4u80 bbcdddeed9 Replaced keys, values and reverse with ranges 2021-03-31 23:33:04 +05:30
chriseth b04b189959 Syntax for custom errors. 2021-03-30 21:15:18 +02:00
Djordje Mijovic 1493326e48 Adding bytes.concat function type. 2021-03-24 11:49:21 +01:00
Mathias Baumann e197ebbdd1 Replace TypePointer with Type const* 2021-03-23 11:47:19 +01:00
Alexander Arlt ae6996efc1 Fix issue with pop on storage array. 2021-02-23 14:26:55 +01:00
chriseth 3dcba53595 Merge pull request #10993 from ethereum/fixModuleMemberNames
Fix module member names for importing with renaming.
2021-02-23 14:20:28 +01:00
chriseth c91cffa4ec Fix module member names for importing with renaming. 2021-02-23 13:15:32 +01:00
Kamil Śliwak 13a9d21d88 FunctionType: Add assertions against missing type annotations
- This should make it easier to realize that one of the analysis phases has not been executed.
2021-02-23 10:29:12 +01:00
Christian Parpart 9ca389d6cd MemberList.Member's last argument (declaration) made mandatory to avoid accidental missing out during construction. 2021-02-11 10:46:14 +01:00
Christian Parpart b0d3412fa9 Fixes missing EnumValue declaration in nativeMembers. 2021-02-11 10:46:14 +01:00
chriseth 99add1e4e5 Merge pull request #10710 from ethereum/implicit-conversion-bug
Disallow certain implicit conversions between integer types.
2021-01-12 15:42:12 +01:00
hrkrshnn e107d51f46 Disallow certain implicit conversions between integer types.
Disallow implicit conversion from ``uintN`` and ``intM`` when ``M > N``, and by extension, explicit
conversion between the same types are also disallowed.
2021-01-12 08:23:47 +01:00
Daniel Kirchner eac2bcf72f Add range-v3. 2021-01-11 18:44:55 +01:00
hrkrshnn 2fb191175b Disallow some explicit conversions to address payable
The following explicit conversions are disallowed:

1. uint160 -> address payable
2. bytes20 -> address payable
3. literals -> address payable (payable(0) is an exception)
2020-12-15 15:01:40 +01:00
chriseth ffaf40950a Merge pull request #10605 from ethereum/develop
Merge develop into breaking.
2020-12-15 14:01:01 +01:00
Djordje MijovicandKamil Śliwak 8aa4568b10 [Sol->Yul] Implementing conversion from calldata slices to memory arrays.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-12-14 22:21:37 +01:00
Djordje Mijovic 0efd52a38e Allowing implicit conversion from calldata slice to memory and storage array types. 2020-12-14 22:21:37 +01:00
hrkrshnn 9bd778d728 Make msg.sender and tx.origin have type address
Previously both of them had type address payable. The idea is that anything that is not know to be
payable should be non-payable.
2020-12-14 16:55:48 +01:00
chriseth 28374447d2 Merge pull request #10582 from ethereum/addr-literal
Fix crash with oversized address literals
2020-12-14 12:14:28 +01:00
chriseth 561280a5cc Merge remote-tracking branch 'origin/develop' into breaking 2020-12-14 11:33:40 +01:00
Alex Beregszaszi 33ff2b16ff Fix crash with oversized address literals 2020-12-11 23:45:23 +00:00
Alex Beregszaszi 7b347b9ec2 Introduce address(...).code 2020-12-11 03:00:30 +00:00
Alex Beregszaszi fa37e69c25 Improved error messages when converting to/from builtin functions 2020-12-10 22:38:15 +00:00
Alex Beregszaszi 7cd05bf603 Introduce block.chainid 2020-12-10 17:07:54 +00:00
Alex Beregszaszi ad6739d0f6 Support address().codehash 2020-12-09 14:58:27 +00:00
chriseth 806453aca9 Merge remote-tracking branch 'origin/develop' into breaking 2020-12-08 21:00:09 +01:00
Alex Beregszaszi 7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
chriseth 49bde69afa Move computation of constants out of types.cpp 2020-12-04 15:14:25 +01:00
hrkrshnn 92ab32e532 Stricter explicit conversion between types.
A type can be converted to another if the conversion requires at most one of the following: sign,
width, kind (int, address, bytesXX, etc.) For example, the conversion `uint16(int8)` is now disallowed.
2020-12-03 16:49:53 +01:00
chriseth a0a02f2307 Merge remote-tracking branch 'origin/develop' into breaking 2020-11-23 19:28:08 +01:00