Commit Graph

1303 Commits

Author SHA1 Message Date
Mathias Baumann
0b7b174945 Add AST Node IdentifierPath 2020-10-13 14:32:11 +02:00
Mathias Baumann
32b4f18023 Print warning for unnamed return parameters and no return statement 2020-10-13 13:11:29 +02:00
Kamil Śliwak
e1cc888369 Fix checkBaseABICompatibility() to make it actually check return parameters and not just ordinary parameters twice 2020-10-12 15:14:56 +02:00
a3d4
90c8c32d86 If a declaration shadows several others, group them together 2020-10-08 21:01:25 +02:00
a3d4
f29ebc0847 Fix shadowing/same-name warnings for later declarations 2020-10-08 20:22:04 +02:00
chriseth
346fe1c6c5 Constants at file-level. 2020-10-08 18:56:17 +02:00
chriseth
21dee1c8ba Check for circular constants across contracts. 2020-10-08 18:56:17 +02:00
chriseth
2d9479b06c Properly set scope. 2020-10-08 18:56:17 +02:00
a3d4
d7b4b4a7aa Fix ICE caused by storage parameters with nested mappings in libraries 2020-10-07 22:07:57 +02:00
Mathias Baumann
6114cd8e8e Add missing annotation assignments 2020-10-07 14:52:35 +02:00
Kamil Śliwak
33ff79bf82 Add missing checks for parameter compatibilty with ABIEncoderV1 in calls 2020-10-06 21:28:46 +02:00
a3d4
3c876fcb60 Fix ICE caused by an array of mappings 2020-09-29 18:17:46 +02:00
chriseth
2037b7d6b8
Merge pull request #9820 from ethereum/new-annotation-field-virtual
Add annotation field ``requiresVirtualLookup``
2020-09-29 15:33:54 +02:00
chriseth
8687b9a3dc
Merge pull request #9903 from a3d4/refactor-warnonshadow
Simplify DeclarationRegistrationHelper
2020-09-28 19:28:34 +02:00
Mathias Baumann
8584c98b6a Add annotation field `requiresVirtualLookup` 2020-09-28 17:36:23 +02:00
a3d4
9b740b03ff Simplify DeclarationRegistrationHelper 2020-09-28 13:21:57 +02:00
chriseth
9115100f2a
Merge pull request #9909 from ethereum/fix-9890
Fix missing annotation settings because of early return
2020-09-28 12:27:43 +02:00
Mathias Baumann
76bb2cafe9 Fix missing annotation settings because of early return 2020-09-28 12:12:44 +02:00
Bhargava Shastry
e2a2276272 Contract level checker: Disallow free function redefinition and alias
shadowing another free function

Co-authored-by: chriseth <chris@ethereum.org>
2020-09-25 17:09:58 +02:00
Alex Beregszaszi
0e5abbd4a9 Display location of invalid UTF-8 sequence in unicode literals in SyntaxChecker 2020-09-23 17:01:02 +01:00
Alex Beregszaszi
af8d78010e Display BoolResult from implicit/explicit conversions for more clarity in error messages 2020-09-23 16:04:07 +01:00
Mathias Baumann
dd81d05559 Make annotations `SetOnce or optional` where feasible 2020-09-22 17:38:21 +02:00
chriseth
83aa8c1e23
Merge pull request #9818 from a3d4/introduce-compositetype
Introduce CompositeType
2020-09-21 22:33:04 +02:00
a3d4
6b77a20134 Introduce CompositeType 2020-09-21 16:18:04 +02:00
Kamil Śliwak
aae640dd3a Fix wrong name used in error message when reporting invalid named argument 2020-09-17 18:59:18 +02:00
a3d4
4ca7655b74 Correct the warning for homonymous, but not shadowing declarations 2020-09-15 02:39:21 +02:00
a3d4
d8520b0af0 Move collision warnings to StaticAnalyzer 2020-09-14 02:52:00 +02:00
a3d4
e7a6534d4f Unify collision warnings 2020-09-14 02:17:53 +02:00
Leonardo
72f8a753a9
Merge pull request #9586 from ethereum/scoper
Assign scopes as a separate step.
2020-09-11 10:45:54 +02:00
Alexander Arlt
df8bbeeb22 ViewPureChecker::reportMutability: don't check visibility on constructors. 2020-09-07 11:35:33 -05:00
Harikrishnan Mulackal
acec8f271d Type Checker: Disallow `virtual` for modifiers in libraries. 2020-09-07 11:17:38 +02:00
chriseth
1f11965849 Simplify DeclarationRegistrationHelper. 2020-09-02 20:45:33 +02:00
chriseth
2934a1f037 Assign scopes as a separate step. 2020-09-02 20:45:33 +02:00
chriseth
20efba6b55
Merge pull request #9568 from ethereum/fixImmutables
Fix reads checks for complex assignment and increment/decrement for immutable variables.
2020-08-28 16:14:18 +02:00
chriseth
8b564a7be7 Fix reads checks for immutable variables. 2020-08-28 15:24:40 +02:00
chriseth
ec3f3c41dd
Merge pull request #9690 from ethereum/immutable-rhs-vardecl
Disallow assigning more than once to immutables during the variable declaration
2020-08-28 14:39:23 +02:00
Leonardo
df79a4f162
Merge pull request #9691 from ethereum/oversized-function-array
Changed canonicalName() to toString() because of internal functions
2020-08-28 13:57:47 +02:00
Harikrishnan Mulackal
7ff809dc78 Disallow assigning more than once to immutables during the vardecl 2020-08-28 13:42:54 +02:00
Harikrishnan Mulackal
672f391660 Changed canonicalName() to toString() because of internal functions 2020-08-27 21:09:35 +02:00
Harikrishnan Mulackal
c7dc42a794 Disallow `using for` directive for interfaces. 2020-08-27 15:57:51 +02:00
Harikrishnan Mulackal
79b2e41252 Fix inheritdoc tags trying to resolve 'empty' elements 2020-08-26 21:28:00 +02:00
a3d4
ad311fae19 Improve error coverage of syntax checker 2020-08-20 03:23:21 +02:00
chriseth
8d92fd1c04 Use opportunistic visiting order for modifiers. 2020-08-18 11:46:59 +02:00
chriseth
9324fb4f20 Free functions. 2020-08-18 11:46:59 +02:00
Jason Cobb
888d7037cd
Make FunctionCallAnnotation::kind a SetOnce 2020-08-12 11:57:01 -04:00
chriseth
0ea5aae9aa Require inheritdoc tag to be non-empty. 2020-08-04 12:13:23 +02:00
chriseth
d31f05fcc0
Merge pull request #9528 from a3d4/improve-error-coverage-return-tag
Use assert to check if return tag applies to a public state-variable
2020-08-03 17:35:50 +02:00
a3d4
0b45168bcb Use assert to check if return tag applies to a public state-variable 2020-08-03 05:22:09 +02:00
chriseth
73506e2858
Merge pull request #9530 from a3d4/improve-error-coverage-referenceresolver
Complete error coverage of ReferenceResolver
2020-07-28 21:12:54 +02:00
a3d4
ffdb0e37ff Complete error coverage of ReferenceResolver 2020-07-28 18:56:57 +02:00
a3d4
5394435bea Use assert to check zero size base type 2020-07-28 17:39:52 +02:00
chriseth
53d497fc31
Merge pull request #9412 from ethereum/unicode-string
[BREAKING] Support unicode string literal type
2020-07-28 11:42:23 +02:00
Alex Beregszaszi
6eb60bc8cd Add check that regular and unicode string literals are well formatted 2020-07-27 18:21:17 +01:00
chriseth
f24097c38d Fix internal error for invalid data location in constructor. 2020-07-27 15:00:17 +02:00
Djordje Mijovic
e7d5a7da10 [TypeChecker] Remove function input and return parameter names from mobileType 2020-07-23 14:39:49 +02:00
chriseth
8b7567f963 Fix merge conflicts. 2020-07-21 15:06:57 +02:00
chriseth
9be5ed1220 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-21 11:35:28 +02:00
a3d4
ecdfef1b30 Replace grave accent with acute accent 2020-07-21 00:18:47 +02:00
chriseth
10f93fbd8a
Merge pull request #9428 from ethereum/removeVar
Remove special treatment of ``var``.
2020-07-20 18:43:44 +02:00
Mathias Baumann
ba0a4de50d NatSpec: Implement `@inheritdoc` 2020-07-20 18:32:18 +02:00
chriseth
93c792c696 Remove special treatment of `var`. 2020-07-20 17:22:04 +02:00
chriseth
c8772a54c3 Constants are considered pure. 2020-07-20 15:18:23 +02:00
chriseth
d3647b13e4 Disallow public state variables overriding pure functions. 2020-07-20 15:18:23 +02:00
Mathias L. Baumann
69a596b0ff
Merge pull request #9418 from ethereum/stateMutForOverride
Issue state mutability restriction for overriding and not for virtual functions.
2020-07-20 15:01:25 +02:00
Sachin Grover
b7adb2aa42 Add SPDX license identifier if not present already in source file
Fixes: #9220
2020-07-17 20:24:12 +05:30
Leonardo Alt
2e1067a05a Set type properly for event parameters 2020-07-17 11:17:27 +02:00
chriseth
ba21d26f88
Merge pull request #9344 from ethereum/issue-3412
Allow overrides to have a more strict mutability than super
2020-07-16 18:50:51 +02:00
Mathias Baumann
dfffecfe2c Allow overrides to have a more strict mutability than super 2020-07-16 17:55:12 +02:00
chriseth
aa3f51ab47 Issue state mutability restriction for overriding and not for virtual functions. 2020-07-16 17:19:35 +02:00
chriseth
f945163909
Merge pull request #9432 from ethereum/develop
Merge develop into breaking.
2020-07-16 17:14:45 +02:00
Alex Beregszaszi
eab12ecf77 Nicer error message for private payable functions 2020-07-14 14:38:12 +01:00
chriseth
349114684d Fix windows build. 2020-07-14 14:19:37 +02:00
chriseth
f93932c259
Merge pull request #9406 from ethereum/fixSegfault
Fix segfault in oversized objects check in combination with var.
2020-07-14 13:30:33 +02:00
Daniel Kirchner
9c62ea182d Fix segfault in oversized objects check in combination with var. 2020-07-14 11:23:39 +02:00
chriseth
f28bede34a Refactor storageSizeUpperBound. 2020-07-14 10:45:02 +02:00
chriseth
cf189a3285
Merge pull request #9285 from ethereum/no_dot_in_asm
[BREAKING] Change _slot and _offset to use dot in inline assembly
2020-07-13 17:46:39 +02:00
chriseth
12f390a60a
Merge pull request #9326 from ethereum/eventOverwriting
[BREAKING] Disallow multiple events with same name and types.
2020-07-13 15:44:35 +02:00
chriseth
fc2e9ec2ff Use .slot and .offest to access storage items. 2020-07-13 14:59:22 +02:00
chriseth
8eee3ed3a2
Merge pull request #9388 from ethereum/develop
Merge develop into breaking.
2020-07-13 14:55:21 +02:00
chriseth
ab2f64f442 Disallow multiple events with same name and types. 2020-07-13 11:24:37 +02:00
a3d4
efc5ee207d Fix internal compiler error caused by oversized objects 2020-07-10 11:39:07 +02:00
chriseth
9ef050af9a
Merge pull request #9373 from ethereum/develop
Merge develop into breaking.
2020-07-09 16:15:43 +02:00
chriseth
8eb459c825 Disallow dot in inline assembly identifiers. 2020-07-08 19:29:58 +02:00
chriseth
d4ecd33247 Propagate function call argument types across function call options. 2020-07-08 17:59:02 +01:00
chriseth
64b6524bdb Merge remote-tracking branch 'origin/develop' into breaking 2020-07-08 09:37:14 +02:00
chriseth
5959d442cb Make visibility optional, but it has to be consistent. 2020-07-07 12:16:18 +02:00
chriseth
28de7cbce9 Fix wording of non-function override error messages. 2020-07-07 11:57:38 +02:00
chriseth
747aeb4999 Assert that visibility of constructor is not queried. 2020-07-07 11:49:44 +02:00
chriseth
f6232393ef Force contracts with constructors with internal parameters abstract. 2020-07-07 11:49:44 +02:00
chriseth
da36400576 Disallow visibility for constructors. 2020-07-07 11:49:44 +02:00
chriseth
e48d3e5847 Fix wording of error message. 2020-07-06 19:22:52 +02:00
chriseth
982a269b2b
Merge pull request #9325 from ethereum/develop
Merge develop into breaking.
2020-07-06 19:11:02 +02:00
chriseth
a09a791999
Merge pull request #9313 from ethereum/doesnt
[Trivial] Replace "doesn't" with "does not" in error message
2020-07-06 18:21:02 +02:00
chriseth
ab68406006 Merge remote-tracking branch 'origin/develop' into breaking 2020-07-06 15:25:25 +02:00
a3d4
5e4aeaa460 Add variable name to the "Variable covers a large part of storage ...." message 2020-07-06 13:49:09 +02:00
Mathias Baumann
8cdf14f1b3 Replace "doesn't" with "does not" in error message 2020-07-06 13:44:33 +02:00
a3d4
1c7a0dcbea Add warnings for oversized subtypes 2020-07-03 15:18:02 +02:00
a3d4
c2e1273ff4 Fixed recursive check in structureSizeEstimate 2020-07-02 04:14:58 +02:00
chriseth
d7899a31af Fix merge conflict resolution. 2020-06-30 18:59:54 +02:00
chriseth
3e3f9a472f Merge remote-tracking branch 'origin/develop' into breaking 2020-06-30 18:56:51 +02:00
Mathias Baumann
c50f0ae00e NatSpec: Implement default inheritance. 2020-06-30 14:45:13 +02:00
Harikrishnan Mulackal
d41eaeba56 Added containsNestedMapping() 2020-06-30 16:15:03 +05:30
Mathias Baumann
fe33891531 Natspec: Add warning when using @author with functions 2020-06-29 18:10:36 +02:00
chriseth
1441b97131 Merge remote-tracking branch 'origin/develop' into breaking 2020-06-22 18:40:20 +02:00
chriseth
cd2cc76f20 Modules are pure. 2020-06-18 18:28:04 +02:00
chriseth
76468f19fe Check if using for refers to a library earlier. 2020-06-17 17:45:40 +02:00
chriseth
71cb7551f4
Merge pull request #9208 from ethereum/develop
Merge develop into breaking.
2020-06-16 16:11:41 +02:00
chriseth
8086ddd3bd
Merge pull request #9189 from ethereum/simplifyResolver
Simplify inline assembly resolver.
2020-06-16 15:31:21 +02:00
chriseth
5fdbb5c3e3 Simplify inline assembly resolver. 2020-06-15 18:10:18 +02:00
chriseth
8155ad2187 Merge remote-tracking branch 'origin/develop' into breaking 2020-06-15 17:11:41 +02:00
chriseth
b4c6fdb1ed
Merge pull request #8749 from aarlt/structured-docs-variables-aarlt-breaking
[BREAKING] Allow NatSpec comments for state variables.
2020-06-15 14:47:29 +02:00
chriseth
194c2b8c9c Directly determine if experimental feature active. 2020-06-12 12:18:48 +02:00
chriseth
07c1167136 Refactor name and type resolution. 2020-06-12 12:18:02 +02:00
chriseth
a1165c135d Fix error codes. 2020-06-10 18:27:37 +02:00
chriseth
7908e6c373 Fix compiler error. 2020-06-10 18:23:19 +02:00
chriseth
6b3171c38b Merge remote-tracking branch 'origin/develop' into breaking 2020-06-10 11:30:50 +02:00
Djordje Mijovic
c6e4943089 Adding fixes for signedness warnings in libsolidity
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2020-06-10 10:41:55 +02:00
chriseth
062159214c Rename scope to currentContract. 2020-06-09 18:19:09 +02:00
chriseth
e5c19d8a2c Replace inContractKind by libraryFunction. 2020-06-09 17:56:58 +02:00
chriseth
259292c884
Merge pull request #9118 from ethereum/develop
Merge develop into breaking.
2020-06-04 10:18:46 +02:00
Mathias Baumann
6f8b5fe53b Disallow override with non-public state variables 2020-06-03 14:03:26 +02:00
chriseth
c8b9d24eba
Merge pull request #9106 from ethereum/develop
Merge develop into breaking.
2020-06-03 13:51:28 +02:00
chriseth
c07254f5ac
Merge pull request #9055 from ethereum/issue-8881
Output error when forward referencing constants in inline assembly
2020-06-02 17:10:56 +02:00
chriseth
0e11d468cc
Merge pull request #9064 from ethereum/FixedPointType-solAssert
Added an assert for FixedPointType in InlineAssembly
2020-06-02 16:57:46 +02:00
Mathias Baumann
bdc2c63327 Output error when forward referencing constants in inline assembly 2020-06-02 14:37:54 +02:00
Harikrishnan Mulackal
0bc9f772e7 Added an assert for FixedPointType in InlineAssembly 2020-06-02 13:31:10 +05:30
Mathias Baumann
a846c18e67 Fix failure to find overload resolution when overrides are involved 2020-05-27 18:31:56 +02:00
chriseth
894478ff8c
Merge pull request #9038 from ethereum/develop
Merge develop into breaking.
2020-05-27 15:24:27 +02:00
chriseth
afa873fe9f
Merge pull request #8913 from ethereum/yul-remove-pc-instr
Mark EVM instruction `pc()` as deprecated when used in inline assembly.
2020-05-27 12:10:32 +02:00
Christian Parpart
b7fa5d5040 Mark EVM instruction pc() as deprecated when used in inline assembly. 2020-05-27 12:07:23 +02:00
chriseth
1bf706085d Merge pull request #9030 from ethereum/issue-8923
Fix ICE when trying to decode too large static arrays
2020-05-27 11:45:39 +02:00
Mathias Baumann
884e7cbffc Fix ICE when trying to decode too large static arrays 2020-05-26 19:36:18 +02:00
Alexander Arlt
cb5bfc7436 Update natspec comments on state variables.
- changing some warnings to errors
2020-05-26 11:18:24 -05:00
chriseth
d0b6de580f Disallow non-namable types for inline arrays. 2020-05-26 18:17:35 +02:00
chriseth
d989dfd43f
Merge pull request #9027 from ethereum/issue-8265
Fix ICE by avoiding copyForLocation() on ArraySliceType
2020-05-26 17:49:11 +02:00
Mathias Baumann
b3cafe4583 Fix ICE by avoiding copyForLocation() on ArraySliceType 2020-05-26 17:27:46 +02:00
Harikrishnan Mulackal
21e34d7ca9 Fixed seed for randomness, fixed conflicts in errorids 2020-05-26 18:21:47 +05:30
chriseth
5fedb4eab0
Merge pull request #9001 from a3d4/partfix-5819-refactor-typechecker
Refactor TypeChecker to assign different IDs to different errors
2020-05-26 11:59:54 +02:00
chriseth
9604174151 Rename asCallableFunction. 2020-05-26 11:35:12 +02:00
chriseth
33450619b1 Checks for uninitialized access to calldata variables. 2020-05-26 10:51:13 +02:00
chriseth
69a028b49c Merge remote-tracking branch 'origin/develop' into breaking 2020-05-26 10:11:23 +02:00
a3d4
936ea6f950 Refactor TypeChecker to assign different IDs to different errors 2020-05-25 13:40:14 +02:00
a3d4
5870253b00 Shorten a couple of lines 2020-05-21 17:38:47 +02:00
a3d4
38e65a909a Remove DocStringAnalyzer and DocStringParser class-specific error reporting functions 2020-05-21 00:26:14 +02:00
a3d4
66a8c7d1ab Remove ReferencesResolver class-specific error reporting functions 2020-05-21 00:04:26 +02:00
a3d4
3a75b1da4d Remove DeclarationTypeChecker class-specific error reporting functions 2020-05-20 23:56:25 +02:00
chriseth
74b9b094c0 Merge remote-tracking branch 'origin/develop' into HEAD 2020-05-20 17:22:47 +02:00
a3d4
6bb177ce77 Remove dedicated error flags from DocStringParser and DocStringAnalyser 2020-05-20 04:17:49 +02:00
a3d4
6dbf23d52a Remove a dedicated error flag from ReferencesResolver 2020-05-20 04:08:32 +02:00
chriseth
d422a406ba
Merge pull request #8983 from ethereum/develop
Merge develop into breaking.
2020-05-19 18:05:28 +02:00
Alexander Arlt
af8bb5fb60 Allow natspec comments on state variables. 2020-05-19 11:01:52 -05:00
Erik Kundt
7d37ed4531 Adds structured docs for variable declarations.
- adds natspec generation for state variables.
- exports structured docs for state variables to JSON.
2020-05-19 11:01:52 -05:00
Djordje Mijovic
bd64b971b9 Fixing tests on breaking branch. 2020-05-19 17:42:19 +02:00
Harikrishnan Mulackal
774edd4670 Error when Mapping type in (non-local) storage is assigned to 2020-05-19 19:12:38 +05:30
chriseth
993a7941b1 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 17:24:40 +02:00
chriseth
e751a1c23d Move scopes into resolver. 2020-05-14 13:16:47 +02:00
chriseth
257bc6a416 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-14 13:04:46 +02:00
Daniel Kirchner
6f04664cfa Disallow array slicing for arrays with dyanmically encoded base types. 2020-05-13 15:52:22 +02:00
a3d4
02d1f8c41a Remove a dedicated error flag from DeclarationTypeChecker 2020-05-12 18:13:17 +02:00
chriseth
0be56a0abf Merge remote-tracking branch 'origin/develop' into breaking 2020-05-12 17:48:53 +02:00
chriseth
077cab0860
Merge pull request #8902 from a3d4/partfix-5819-add-more-error-ids
Add error IDs to OverrideChecker, BMC and ContractLevelChecker
2020-05-12 13:22:42 +02:00
a3d4
02eee54f38 Add error IDs to ContractLevelChecker 2020-05-12 11:42:29 +02:00
a3d4
1d5350e32f Add error IDs to OverrideChecker 2020-05-12 02:26:02 +02:00
Daniel Kirchner
c1ed5bbb0f Update Dockerfiles and CI scripts to Ubuntu 20.04 and simplify them. 2020-05-11 17:35:01 +02:00
chriseth
debee799dc
Merge pull request #8892 from ethereum/boost-cxx11
Replace boost/algorithm/cxx11 with C++11 features
2020-05-11 16:29:42 +02:00
chriseth
e2f7e8a3a7
Merge pull request #8890 from ethereum/fixclangv10
Fix clang v10 compilation errors
2020-05-11 15:39:09 +02:00
Alex Beregszaszi
875415a132 Replace boost/algorithm/cxx11 with C++11 features 2020-05-11 14:27:54 +01:00
chriseth
0248303c15
Merge pull request #8872 from ethereum/int-min-max
implemented type(X).min and type(X).max for all integer types
2020-05-11 15:08:19 +02:00
Mathias Baumann
fe43132003 Fix clang v10 compilation errors 2020-05-11 14:59:51 +02:00
Harikrishnan Mulackal
e54c4eecfc implemented type(X).min and type(X).max for all integer types 2020-05-11 14:51:13 +05:30
chriseth
aa7684fb54
Merge pull request #8864 from a3d4/fix-error-reporting-source-code-format
Fix error reporting source code format
2020-05-07 20:15:51 +02:00
Mathias Baumann
50e59f1008 trigger error when runtimeCode is called on contracts with immutables 2020-05-07 15:10:04 +02:00
a3d4
7e1835af71 Fix error reporting source code format 2020-05-07 04:46:02 +02:00
chriseth
6fb112fa8e Remove some unneeded headers. 2020-05-07 01:49:46 +02:00
a3d4
8f68c04358 Add unique IDs to error reporting calls 2020-05-06 13:53:46 +02:00
a3d4
e3641b88ec Groundwork. Prepare for automatic tagging
[Not compilable until the next commit]
2020-05-06 13:52:28 +02:00
Harikrishnan Mulackal
b5612f96c9 Deprecated identifier now 2020-05-05 21:11:15 +05:30
chriseth
ecbf216354 Merge remote-tracking branch 'origin/develop' into breaking 2020-05-04 18:46:45 +02:00
a3d4
3bd15655cb Type Checker: Fix internal error when applying unary operators to tuples with empty components 2020-04-29 02:18:48 +02:00
chriseth
1fe55370f4 Merge remote-tracking branch 'origin/develop' into HEAD 2020-04-28 13:02:06 +02:00
hrkrshnn
051eec5c51 Converted warnings for .gas and .value into an error 2020-04-23 21:02:02 +05:30
hrkrshnn
e2e32d372f virtual modifiers (in Abstract contracts) allow empty bodies 2020-04-23 17:26:59 +05:30
chriseth
a371910674
Merge pull request #8642 from ethereum/interfaceid
Add support for interfaceId.
2020-04-23 12:24:49 +02:00
a3d4
c4bc77874b Disallow empty tuples on the left hand side 2020-04-23 07:02:04 +02:00
a3d4
9538024c81 Fix #8711, #8277 2020-04-23 05:57:35 +02:00
chriseth
6728e3ef94 Merge remote-tracking branch 'origin/develop' into breaking 2020-04-22 17:21:32 +02:00
chriseth
264c4264a1
Merge pull request #8644 from ethereum/refactor-lValueRequested
Replaced all instances of lValueRequested to willBeWrittenTo
2020-04-20 15:03:50 +02:00
chriseth
c24c4f85e4
Merge pull request #8665 from ethereum/recursiveStructRefactoring
Recursive struct refactoring and a bunch of ICE fixes.
2020-04-20 13:24:19 +02:00
hrkrshnn
4760b8589d Replaced all instances of lValueRequested to willBeWrittenTo 2020-04-20 12:33:30 +05:30
Alexander Arlt
3754a86ab2 Add support for interfaceID. 2020-04-16 12:17:40 -05:00
Daniel Kirchner
f6d1cee06b Ensure that public callable parameters are valid for calldata. 2020-04-16 17:23:20 +02:00
Daniel Kirchner
6093982606 Review suggestions. 2020-04-16 16:42:12 +02:00
Daniel Kirchner
6f06154eb5 Move direct struct recursion check to detect recursion in global structs. 2020-04-16 16:42:12 +02:00
Daniel Kirchner
b744a56801 Refactoring of errors and fixes for various ICEs. 2020-04-16 16:42:12 +02:00
Daniel Kirchner
df1809f8da Annotate struct definitions with a recursive flag. 2020-04-16 16:42:12 +02:00
Daniel Kirchner
b86c927505 Disallow virtual and override for constructors. 2020-04-15 13:58:37 +02:00
Alexander Arlt
aac7a1e434 Apply modernize-pass-by-value. 2020-04-14 10:32:13 -05:00
Daniel Kirchner
3af43fd350 Extract typing. 2020-04-14 10:59:28 +02:00
a3d4
3ef510bc86 Removed a redundant else clause. 2020-04-08 23:40:29 +02:00
chriseth
51883958ab Merge remote-tracking branch 'origin/develop' into breaking 2020-04-07 11:14:28 +02:00
chriseth
806c835647
Merge pull request #8568 from aarlt/clang-tidy-apply-modernize-use-override
clang-tidy: Apply modernize-use-override.
2020-04-06 16:09:02 +02:00
Daniel Kirchner
d68c526eaa Disallow external function pointers as immutables. 2020-04-03 11:56:51 +02:00
hrkrshnn
042ccd24ab Added error message for virtual (library) functions; test case 2020-04-03 15:09:57 +05:30
Alexander Arlt
cae6e7769f Apply modernize-use-override. 2020-04-02 18:00:44 -05:00
chriseth
bdcfd71f34 Skip verification for external access. 2020-04-02 18:40:43 +02:00
hrkrshnn
ef2bef9ddc Added error for interface function with modifiers; test case 2020-04-02 20:30:43 +05:30
Mathias Baumann
ac7b31e559 Validate immutable variables 2020-04-02 13:52:27 +02:00
chriseth
a2b427dc0b
Merge pull request #8567 from ethereum/storage-pointer-checker
Removed redundant storage declaration check; test coverages
2020-04-02 13:46:51 +02:00
hrkrshnn
79387b2ada Removed redundant declaration check; changed relevant test cases 2020-04-02 12:27:38 +05:30
Alexander Arlt
3e649eb8e1 Disallow access to functions from inline assembly. 2020-04-01 10:34:55 +02:00
a3d4
c002cae691 Fix #8450. Prevented internal compiler errors when assigning nested tuples. 2020-03-31 03:25:26 +02:00
a3d4
339f3ca32c Fix #8427: Promoted typeError to fatalTypeError in ReferencesResolver::endVisit(UserDefinedTypeName). 2020-03-25 02:51:34 +01:00
iamdefinitelyahuman
cae4b7dd0e fix typo in docstring error message 2020-03-22 17:15:44 +04:00
chriseth
fa148f2483 Parsing of immutable state variable. 2020-03-12 17:11:24 +01:00
a3d4
a86c511713 Replaced "assert" with "if" (incorrect contract code is not supposed to trigger asserts). 2020-03-12 14:03:27 +01:00
a3d4
437ab3d24c Fixed ControlFlowBuilder compilation error. 2020-03-10 14:02:16 +01:00
Daniel Kirchner
809e3503ba Control flow analysis for inline assembly. 2020-03-09 16:23:10 +01:00
chriseth
37e01a19c0 Fix scoping following try/catch. 2020-03-09 13:14:13 +01:00
Daniel Kirchner
7f38cbb91d Fix calling unimplemented base function. 2020-03-06 10:51:16 +01:00
Djordje Mijovic
58c6b90705 Deprecated warning for .value() and .gas() on function and constructror calls 2020-03-04 12:51:49 +01:00
chriseth
45041e5d3a Allow access to `_slot` for local storage pointer variables. 2020-02-25 14:28:04 +01:00
chriseth
c2e22d4cab
Merge pull request #8221 from ethereum/structured-docs-error-locations
[parser] Source locations for structured documentation errors
2020-02-18 14:57:28 +01:00
Jason Cobb
6db0d50094
Don't use identifiers starting with an underscore followed by an uppercase letter 2020-02-17 12:44:39 -05:00
Erik Kundt
b43751d65e Reports source location for structured documentation errors. 2020-02-14 15:21:39 +01:00
Daniel Kirchner
9f094d59b9 Mark function selector accesses as pure for pure expressions and mark function accesses via contract name as pure. 2020-02-14 12:33:33 +01:00
Mathias L. Baumann
c635377450
Merge pull request #8313 from ethereum/checkFunctionsExistInIsoltest
Make type error fatal to prevent assert failure at later point
2020-02-13 16:08:13 +01:00
Mathias Baumann
8911b58a6d Make type error fatal to prevent assert failure at later point 2020-02-13 15:16:28 +01:00
Daniel Kirchner
45f80e9895 Move assertion in PostTypeChecker's ConstStateVarCircularReferenceChecker to account for function type variables 2020-02-12 17:42:27 +01:00
Daniel Kirchner
9c3151748e Move mapping key checks to ReferencesResolver and make them fatal. 2020-02-11 13:35:23 +01:00
a3d4
b3b8441aa4 Fix printing source for missing pragma. 2020-02-09 02:28:47 +01:00
Daniel Kirchner
e07274a96f Disallow libraries as mapping keys. 2020-02-06 09:09:43 +01:00
Erik Kundt
f2701db0aa Adds documentation for Solidity source upgrader. 2020-02-05 16:52:54 +01:00
chriseth
7cca036f4c
Merge pull request #8224 from a3d4/refactor-sourcelocation
Replaced SourceLocation::isEmpty() with isValid() and hasText().
2020-02-04 22:23:51 +01:00
Daniel Kirchner
d3cbfb0c5c Allow user-defined types as mapping keys in parser and restrict to contracts during type checking. 2020-02-04 17:22:03 +01:00
alex
e4b18e85e6 Replaced SourceLocation::isEmpty() with isValid() and hasText().
The function SourceLocation::isEmpty() had somewhat dual role.
Sometimes it indicates that the SourceLocation is invalid.
Sometimes it means that there is no corresponding source text.

Hence the proposal is to replace it with two functions, isValid() and hasText().

I also removed Scanner::sourceAt(). (Do we have a rule of thumb to remove unused code?)

Since hasText() checks that start and end are valid indices for source, I adjusted a couple of tests to avoid empty source strings.
2020-02-03 08:04:21 +01:00
Erik Kundt
ec27c2e507 Introduce AST node for structured documentation. 2020-01-30 18:25:56 +01:00
Mathias Baumann
b8e2baf5f4 Use yul::AstWalker to resolve assembly symbols 2020-01-28 17:57:48 +01:00
Mathias Baumann
a3f23d3158 Implement new with CREATE2 and function call options. 2020-01-23 21:20:01 +01:00
Jason Cobb
573a054d5d
Prohibit interfaces inheriting from non-interfaces 2020-01-22 09:40:40 -05:00
Jason Cobb
1cc8ce1656
Don't prohibit interface inheritance 2020-01-22 09:40:40 -05:00
Daniel Kirchner
ee5ff4df4e Clean up visibility via contract name and fix ICE on calling unimplemented base function. 2020-01-16 19:13:04 +01:00
Daniel Kirchner
c450b18673 Remove remaining instances of new. 2020-01-15 17:25:08 +01:00
djudjuu
e8556fa1b2 Ast-Import from standard-json 2020-01-14 17:15:53 +01:00
Daniel Kirchner
9535c0f520 Introduce FunctionKind::Declaration and allow accessing function signatures via contract name. 2020-01-09 15:40:41 +01:00
Mathias Baumann
2179562785 Move variables-in-interfaces checker to PostTypeChecker
refs #7566
2020-01-08 14:05:08 +01:00
Mathias Baumann
21844aa545 Move event-outside-emit check to PostTypeChecker
refs #7566
2020-01-08 14:05:08 +01:00
Mathias Baumann
9f8d49e358 Move modifier context check to PostTypeChecker
refs #7566
2020-01-08 14:05:08 +01:00
chriseth
5ca3abd7cb
Merge pull request #8106 from random-internet-cat/move-contract-kind
Move ContractKind from ContractDefinition to file-scope
2020-01-08 13:06:26 +01:00
Christian Parpart
345f9928ab Library libdevcore renamed to libsolutil. 2020-01-07 15:51:50 +01:00
Christian Parpart
6b23412fae C++ namespace cleanup (except tests). 2020-01-07 15:51:50 +01:00