Commit Graph

1059 Commits

Author SHA1 Message Date
Marenz
c88c74ceb8 Rename ASTJsonConverter to ASTJsonExporter
given that we have an ASTJsonImporter this name makes more sense.
2022-06-16 18:05:51 +02:00
Daniel Kirchner
16245f7b9b Warn about multiple assignments to storage byte pushes and fix warnings about multiple storage to storage copies.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-06-15 13:53:05 +02:00
Daniel Kirchner
d30b04674e Add resolveUnaryTuples helper. 2022-06-15 13:15:26 +02:00
Kamil Śliwak
acbdcc3711 Revert the change that made events accessible in other contacts via qualified access 2022-06-14 12:04:14 +02:00
Ryan
4b7ed2d47a Display human readable type name in conversion error message 2022-06-08 18:23:51 +05:30
Christian Parpart
4ae43884d0 Apply a better way to annotate unreachability to the C++ compiler. 2022-06-07 16:41:04 +02:00
Kamil Śliwak
539e139555 Add explicit throws after some assertions to work around a spurious warning in GCC 12.1 2022-06-01 20:37:48 +02:00
nishant-sachdeva
d4c06d2b4e Adding event and error selector fields on the lines of the function selector fields 2022-05-23 10:49:16 +02:00
chriseth
dfa0bcf760 More strict override check for data locations. 2022-05-17 13:02:12 +02:00
Aisultan Kali
96376264e8 Set handlers use unified jsonPrint with prettifier if needed 2022-04-04 20:17:11 +02:00
chriseth
9188519f11 Using for with global binding. 2022-03-14 17:39:14 +01:00
chriseth
3f6beaa0ad
Merge pull request #12121 from ethereum/extend-using-statement
Extend using statement
2022-03-14 14:10:16 +01:00
hrkrshnn
672951ccc7 Extend using-for. 2022-03-14 12:33:44 +01:00
Christian Parpart
2b2f8acc12 LSP: Implements goto-definition. 2022-03-14 11:59:41 +01:00
Tyler
1c58b91075 Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations 2022-03-10 17:39:29 -05:00
Tyler
1653b6c5b7 more qualifying 2022-03-10 17:36:46 -05:00
Tyler
047034544e Merge branch 'develop' of github.com:tfire/solidity into fix/remove-namespace-ast-annotations 2022-03-09 18:55:22 -05:00
chriseth
7bd6cba79c Provide generic access to type definition for user-defined types. 2022-03-09 10:41:57 +01:00
Tyler
519e1c9402 Specify namespaces
Fix references into solidity::util
2022-03-08 00:09:17 -05:00
chriseth
77c40cd2af
Merge pull request #12740 from ethereum/remove-locale-dependent-operations
Replace all locale-dependent operations with locale-agnostic counterparts
2022-03-07 17:56:58 +01:00
wechman
52dfccca98 Replace all locale-dependent operations with locale-agnostic counterparts 2022-03-07 17:23:08 +01:00
Tyler
a890c82f9d Remove use of using namespace in header file 2022-03-06 23:16:10 -05:00
Daniel Kirchner
290b1c3a90 Allow memory-safe inline assembly dialect flag. 2022-03-02 17:07:11 +01:00
Daniel Kirchner
9bcfcc61a7 Inline assembly without memory effects is implicitly memory safe. 2022-03-02 16:42:28 +01:00
Daniel Kirchner
e6848caac1 Allow annotating inline assembly as memory-safe. 2022-03-02 16:42:28 +01:00
nishant-sachdeva
195f72e844 Added errorSelector field for custom errors 2022-02-21 19:14:33 +05:30
nishant-sachdeva
276851ff91 Added support for FunctionType::Kind::StringConcat and functions string.concat 2022-02-10 22:08:47 +05:30
Marenz
46075d04d9 Include used events in `--hashes` output 2022-02-09 13:50:42 +01:00
nishant-sachdeva
e85bceb417 Types.h:872 had a comment /// String is interpreted as a subtype of
Bytes. - this was now incorrect after #12593 . That has been removed
now.
2022-02-04 15:49:08 +05:30
nishant-sachdeva
cc6344c03c Changed instaces of isByteArrayOrString() to isByteArray() where it's only supposed to return a True for Bytes Type 2022-02-02 17:05:26 +05:30
nishant-sachdeva
9043621747 Changed occurences of isByteArray() to isByteArrayOrString(). The idea
is to, in a future commit, replace such occurences of
isByteArrayOrString() which are required to return True only for Bytes
type with a new isByteArray() function.
2022-02-02 14:19:58 +05:30
Mathias L. Baumann
b6dbfdf79b
Merge pull request #12494 from ethereum/AST-ImportDirective-traversal-fix
Adds missing accepts to ImportDirective's SymbolAlias::symbol.
2022-01-24 13:27:00 +01:00
nishant-sachdeva
a0d6c11860 Equality operator allowed for external function types 2022-01-19 15:20:31 +05:30
Marenz
0004ad8764 Fix ICE when a constant variable declaration forward references a struct 2022-01-17 13:24:14 +01:00
Christian Parpart
f5ff358add Adds missing accepts to ImportDirective's SymbolAlias::symbol 2022-01-10 19:32:28 +01:00
chriseth
e3bb5ab7b2
Merge pull request #12431 from ethereum/fixFun2
Safer constructors for FunctionType
2022-01-04 18:18:21 +01:00
Marenz
b95db2db5e Remove unnecessary checks in modifier resolve function 2021-12-29 13:27:10 +01:00
chriseth
7620bfaad8 Add option member for function type. 2021-12-23 12:05:18 +01:00
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
hrkrshnn
8815d6f5f0 Moved a check related to constants to TypeChecker
And added a proper error message when constant types containing (nested) mapping types are used.
2021-10-26 18:43:04 +02: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
Christian Parpart
86a7e19879 libsolidity: Adding a comment to nameLocation(). 2021-10-14 17:33:15 +02:00
Marenz
4368da0201 Fix ICE when printing an error message related to mappings 2021-10-06 17:02:36 +02:00
chriseth
ecfcca1a27
Merge pull request #12016 from ethereum/external-fp-10358
Add ``.address`` and ``.selector`` in inside assembly for external function pointers
2021-10-05 14:48:58 +02:00
Marenz
98dd78362e Add `.address and .selector` in inside assembly for external function pointers 2021-10-04 18:05:57 +02:00
Kamil Śliwak
7f7107405f Try out the new assertion macro variants with less arguments 2021-10-04 12:05:00 +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
hrkrshnn
6109b5c3a1 UserDefinedValueType.storageBytes() is correctly set
Previously it returned 32 bytes for all types, which was wasteful. This commit changes it to return
the storage bytes of the underlying type.
2021-09-29 11:41:47 +02:00
chriseth
b6e62d61ec Export canonicalName 2021-09-28 12:00:30 +02:00
chriseth
1531863835 Split Common.h into Numeric.h. 2021-09-23 15:27:29 +02:00
chriseth
c8e6ef9657
Merge pull request #12004 from ethereum/disambiguateBytesRequired
Disambiguate bytesRequired
2021-09-23 15:25:44 +02:00
Kamil Śliwak
ce4420f857 Separate DebugData fields for Solidity and Yul source locations 2021-09-22 13:11:39 +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
Daniel Kirchner
be29ef70a7 Allow accessing user defined value type members via contract name. 2021-09-14 16:24:14 +02:00
Kamil Śliwak
14639efc5d Print code snippets next to source locations in IR output 2021-09-14 12:09:59 +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
d67391531e Implemented ASTJson import export for UserDefinedValueType
Also added a test.
2021-09-08 21:19:30 +02:00
hrkrshnn
15452371d4 Types for UserDefinedValueType 2021-09-07 19:42:51 +02:00
hrkrshnn
d3ae9cf71b Added AST node 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
b0ce98bcb2 Using range-v3 instead of boost
Signed-off-by: soroosh-sdi <soroosh.sardari@gmail.com>
2021-08-24 23:50:23 +04:30
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
chriseth
ffc5cfd9a5 Remove scanner from compiler stack. 2021-08-03 15:43:17 +02:00
chriseth
01dc77e5a2 Properly assign source names for AST import. 2021-07-14 15:12:10 +02:00
chriseth
f75b55071e Remove CharStream from SourceLocation. 2021-07-14 15:12:07 +02:00
Kamil Śliwak
1d1d74bd0e RationalNumberType: Fix wrong docstring about m_compatibleBytesType being used for explicit conversions 2021-06-29 13:27:21 +02:00
a3d4
70b8b1c834 Do not warn about shadowing parameters in functions without implementation 2021-06-09 12:35:26 +02:00
chriseth
7d8a4e63d8
Merge pull request #11491 from TerranCivilian/fix-10269
Remove unneeded include files
2021-06-07 20:15:20 +02:00
TerranCivilian
c15501eea9 Remove unneeded include files 2021-06-07 12:53:18 -04:00
Mathias Baumann
6a0313c456 Unify function call resolve function used in Analysis & Yul CodeGen 2021-06-07 15:23:32 +02:00
chriseth
0d948ebf81 Cache functions by name. 2021-06-03 11:10:35 +02:00
Kamil Śliwak
d96cc3469a FunctionDefinition.resolveVirtual(): Skip unimplemented functions when lookup happens via super 2021-06-02 16:16:15 +02:00
hrkrshnn
f582d48f7b Error message: try-catch parameter cannot be in storage. 2021-05-31 11:25:08 +02:00
Daniel Kirchner
6104ac1cdf Remove more imports of ranges namespace. 2021-05-07 15:42:17 +02:00
Djordje Mijovic
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
e404b6e7a6 Refactoring yul source locations. 2021-05-04 16:05:23 +02:00
chriseth
659da4bdc7
Merge pull request #11047 from ethereum/bytesToBytesNNConversion
Bytes to bytesNN conversion
2021-04-26 11:51:41 +02:00
Alex Beregszaszi
e39433198d Remove the usage of boost::noncopyable
Prior to this half of the codebase used explicit deleted copy constructors, the others used boost::noncopyable.
2021-04-23 14:57:01 +01:00
Djordje Mijovic
b40c3bcc32 Allowing conversion from bytes to bytesNN in type checker. 2021-04-23 13:19:19 +02:00
chriseth
8eb0d5edf6 Export used errors in the AST. 2021-04-19 14:15:50 +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
Mathias Baumann
e590a99f39 Detect circular references for library and free functions 2021-03-30 23:06:30 +02:00
chriseth
e877e2bba7 Use all referenced errors. 2021-03-30 21:15:46 +02:00
chriseth
d5669696d5 Code generation for errors. 2021-03-30 21:15:46 +02:00
chriseth
b552e5aeeb AST import and export for revert statement. 2021-03-30 21:15:46 +02:00
chriseth
fb67051467 Revert statement. 2021-03-30 21:15:46 +02:00
chriseth
b04b189959 Syntax for custom errors. 2021-03-30 21:15:18 +02:00
chriseth
99fcf62736 Extract referencedDeclaration as helper. 2021-03-24 17:01:50 +01:00
Djordje Mijovic
1493326e48 Adding bytes.concat function type. 2021-03-24 11:49:21 +01:00
chriseth
d15ba987d1 Fix AST output if modifier invocation is base constructor call. 2021-03-24 11:24:26 +01:00
chriseth
e3ea5c631e
Merge pull request #11136 from ethereum/refactor-typepointer
Replace `TypePointer` with `Type const*`
2021-03-23 18:32:38 +01:00
Mathias Baumann
e197ebbdd1 Replace TypePointer with Type const* 2021-03-23 11:47:19 +01:00
Mathias Baumann
bccedf791b Add creationCode/runtimeCode contract creation detection to call graph 2021-03-22 15:44:23 +01:00