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
Jason Cobb
529405deb6
Move ContractKind from ContractDefinition to file-scope
2020-01-07 09:11:29 -05:00
Mathias L. Baumann
20cf9d9fef
Merge pull request #8038 from ethereum/statless-typechecker-7566
...
Refactor PostTypeChecker into multiple classes per usecase
2020-01-06 14:39:58 +01:00
chriseth
ece6463f56
Merge pull request #8069 from random-internet-cat/set-scope
...
Move scope of Scopable into new ScopableAnnotation
2019-12-20 08:22:36 +01:00
Jason Cobb
6679f92c8a
Move all references to scope into annotation
2019-12-19 21:45:16 -05:00
chriseth
7db88cfedd
Remove yul::Instruction
.
2019-12-19 23:22:19 +01:00
Mathias Baumann
a8ca96cd3e
Refactor PostTypeChecker into multiple classes per usecase
2019-12-19 10:43:27 +00:00
chriseth
c175a468ab
Do not call ABIEncoderV2 experimental.
2019-12-12 10:59:07 +01:00
Leonardo Alt
1fb62b91d2
Add more override tests with public state variables
2019-12-11 15:15:51 +01:00
chriseth
70623665bf
Move helper structs and clean code.
2019-12-11 15:15:51 +01:00
chriseth
30732269f6
Consider state vars.
2019-12-11 15:15:51 +01:00
chriseth
57824566e6
Use proxies.
2019-12-11 15:15:51 +01:00
chriseth
3e1b00b459
Introduce proxies.
2019-12-11 15:15:51 +01:00
chriseth
90feb8f72a
Move Visibility out of Declaration.
2019-12-11 00:38:59 +01:00
chriseth
93d84f3554
Split out override checker into its own file.
2019-12-10 16:00:05 +01:00
chriseth
a5f7661075
Ambigous overrides for modifiers.
2019-12-09 18:43:59 +01:00
chriseth
152f42c6b2
Make ambigous override checker generic.
2019-12-09 18:41:39 +01:00
chriseth
e1d6ce2b66
Override checks for modifiers.
2019-12-09 18:41:39 +01:00
Daniel Kirchner
4c7f9f9751
Do not require overriding for functions in common base with unique implementation.
2019-12-09 16:04:45 +01:00
chriseth
e061f1e743
Merge remote-tracking branch 'origin/develop' into HEAD
2019-12-05 16:44:26 +01:00
Mathias Baumann
b7d5de59c5
Implement overridding of functions by public variables
2019-12-05 12:48:52 +00:00
Gaith Hallak
4d90180e24
Support referencing other constants in inline assembly
2019-12-05 13:27:17 +03:00
Daniel Kirchner
426f04b389
Implement and fix overriding unimplemented and implemented functions with unimplemented functions.
2019-12-05 09:26:43 +01:00
Daniel Kirchner
8b35918ad0
Replace superFunction by baseFunctions in AST annotations and JSON AST.
2019-12-05 03:33:32 +01:00
Erik Kundt
19d466d6fb
Fixes named return natspec errors in compilation tests.
2019-12-04 15:38:12 +01:00
Erik Kundt
e5cb0fe839
Reports doctring error on named return mismatch.
2019-12-04 15:38:11 +01:00
Christian Parpart
7bbdfe070f
Make shadowing of inherited state variables an error.
2019-12-03 21:20:03 +01:00
Daniel Kirchner
05baa23e8a
Require unimplemented functions to be virtual.
2019-12-02 21:59:00 +01:00
chriseth
1ebcc757e1
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-27 19:14:08 +01:00
Mathias Baumann
7bc6645218
Disallow use of virtual and private together
2019-11-27 18:52:41 +01:00
chriseth
0bb88dabb7
Restrict usage of plain "new".
2019-11-27 17:55:11 +01:00
chriseth
0973ae751a
Do not warn about enabled ABIEncoderV2 anymore.
2019-11-26 15:49:42 +01:00
chriseth
d5e9271592
Merge pull request #7350 from ethereum/array-length-rvalue
...
Make `length` member read-only
2019-11-21 19:22:42 +01:00
Leonardo Alt
389da5228e
Merge remote-tracking branch 'origin/develop' into merge_develop_060
2019-11-20 12:27:40 +01:00
Leonardo Alt
be849b3c47
Replace boost::variant by std::variant in libyul
2019-11-19 17:23:18 +01:00
Erik Kundt
ecaed1030f
Makes array length access read-only.
2019-11-19 16:09:21 +01:00
chriseth
6797879128
Merge pull request #7647 from ethereum/virtual-5424
...
Implement virtual keyword
2019-11-19 13:21:27 +01:00
chriseth
216e1749f4
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-14 13:42:46 +01:00
chriseth
766309b6e4
Merge pull request #7713 from ethereum/no-lib-instance-7625
...
Disallow variables of library types
2019-11-14 13:39:56 +01:00
Mathias Baumann
0891b9451b
Disallow variables of library types
2019-11-14 13:20:31 +01:00
chriseth
a667384517
Merge pull request #7712 from ethereum/fixIstanbulAsmParsing
...
Fix assembly parsing by passing evm version.
2019-11-14 13:20:15 +01:00
chriseth
b099374d8c
Fix assembly parsing by passing evm version.
2019-11-14 13:06:36 +01:00
Mathias Baumann
5b8ff78176
Implement virtual keyword
2019-11-14 11:49:39 +01:00
chriseth
06588cde76
Reconstruct function definition for magic variables in overload error message.
2019-11-14 10:13:22 +01:00
Mathias Baumann
15df2b30d7
List candidates when overload failed
...
fixes #7146
2019-11-13 15:54:36 +01:00
Daniel Kirchner
8148619d5b
Merge branch 'develop' into develop_060
2019-11-12 10:32:41 +01:00
Mathias Baumann
e35a23bbcc
Add `switch (..)
to style checker
2019-11-11 17:44:21 +01:00
Mathias Baumann
e643c4ca28
Add `while (..)
to style checker
2019-11-11 17:28:41 +01:00
Christian Parpart
f15d47f165
Yul: Remove obsoleted FunctionalInstruction.
2019-11-11 16:04:39 +01:00
Alexander Arlt
ce0cef7cbc
Output which functions are not implemented
2019-11-08 14:06:57 -05:00
Daniel Kirchner
0556f64722
Analyze inline assembly variable declarations for invalid or shadowing names.
2019-11-07 13:04:37 +01:00
chriseth
5388c919f0
Some changes to "abstract".
2019-11-05 13:55:31 +01:00
Daniel Kirchner
3321fc56ea
Split fallback function and introduce "fallback()" and "receive()" syntax.
2019-11-04 17:17:58 +01:00
chriseth
5392532d70
Fix override error message.
2019-11-04 13:37:23 +01:00
Alexander Arlt
f3f652e290
Update TypeChecker.cpp
2019-11-01 14:54:47 -05:00
Alexander Arlt
c908c16acd
Remove InternalCompilerError on abstract contract instantiation.
2019-11-01 14:54:47 -05:00
Alexander Arlt
62950a9234
Support for abstract contracts.
2019-11-01 14:54:47 -05:00
Mathias Baumann
6c6a9054b2
Implement override checking
2019-10-30 17:31:33 +01:00
Mathias Baumann
5ff02c12e2
Add reference to contract in FunctionDefinition annotation
2019-10-30 17:31:33 +01:00
Mathias Baumann
20e227afb5
Ensure list of overrides consists of contracts
2019-10-30 17:31:33 +01:00
Mathias Baumann
f4c40080c4
Move if-condition to function for re-use
2019-10-30 17:31:33 +01:00
chriseth
ceb8ee9124
[Yul] leave statement.
2019-10-29 14:32:16 +01:00
chriseth
edf1e83fda
Merge remote-tracking branch 'origin/develop' into develop_060
2019-10-28 15:21:49 +01:00
chriseth
607bf24afe
Merge pull request #7386 from ethereum/060-strict-inline-assembly
...
Defaulting to strict inline assembly (instead of loose)
2019-10-28 12:48:58 +01:00
chriseth
9719f099aa
Merge pull request #7551 from ethereum/060-cxx17-std-optional
...
Use `std::optional<>` rather than `boost::optional<>`
2019-10-28 12:17:31 +01:00
chriseth
07c67b98f6
Merge remote-tracking branch 'origin/develop' into HEAD
2019-10-28 12:12:52 +01:00
Christian Parpart
df729b3084
Make use of C++17 std::optional<> instead of boost::optional<>.
2019-10-28 11:39:30 +01:00
Henry Lee
24cbb4dd17
Treat magic variables as unknown identifiers in inline assembly
...
This fixes #4575 . For keywords such as 'super' and 'this', will be
treated as unknown identifiers.
2019-10-28 14:59:50 +11:00
Christian Parpart
3c1d12b16c
Assembly: Remove errorTypeForLoose property from AsmAnalyzer.
2019-10-25 15:01:26 +02:00
Christian Parpart
dc2adb3d9d
Assembly: Removing EVMDialect::looseAssemblyForEVM().
2019-10-25 15:01:26 +02:00
Christian Parpart
e23998fc6e
Assembly: Remove Label instruction.
2019-10-25 15:01:25 +02:00
Christian Parpart
5e8d348f66
Assembly: Remove StackAssignment instruction.
2019-10-25 15:01:25 +02:00
Mathias Baumann
8c5d1da5a5
Check for use of modifiers in invalid contexts
2019-10-23 12:36:20 +02:00
Mathias Baumann
ad7cf42aad
Add missing dots in deprecation warning
2019-10-23 12:23:21 +02:00
Mathias Baumann
6ac12afd06
Disallow call of same-class-ctor as modifier
2019-10-23 10:29:41 +02:00
chriseth
f884373142
Merge branch 'origin/develop' into develop_060
2019-10-02 16:29:36 +02:00
Christian Parpart
00d7dac15f
Fixes source location in warning for shadowing import delcarations.
2019-09-30 11:45:46 +02:00
Leonardo
ca714a2d3d
Merge pull request #7485 from ethereum/develop
...
Merge develop into develop_060
2019-09-26 15:43:12 +02:00
chriseth
ca21659749
Fix error message about accessing storage pointers.
2019-09-24 10:52:02 +02:00
chriseth
8e736a9f49
Type Checker for try/catch.
2019-09-23 17:22:56 +02:00
chriseth
b5bc52f2a7
Control flow for try statements.
2019-09-23 17:22:56 +02:00
Leonardo Alt
43d6e00b14
Add push() for dynamic storage arrays
2019-09-17 13:47:33 +02:00
Daniel Kirchner
4782c800ec
Initial introduction of array slices with partial implementation for dynamic calldata arrays.
2019-09-13 10:57:53 +02:00
Leonardo Alt
5cfe0b7670
Allow explicit conversion from address to address payable
2019-09-09 23:46:00 +02:00
krk
33f7f960cf
Allow exponentials with signed base and unsigned power.
2019-09-04 17:32:47 +02:00
Daniel Kirchner
4354ef2ef4
Add update suggestion.
2019-08-19 14:58:05 +02:00
chriseth
c047803b80
Change BreadthFirstSearch to use value types instead of pointers.
2019-08-15 16:10:10 +02:00
Daniel Kirchner
e545103ec8
Extract reasonOfFailure to lambda function.
2019-08-14 17:59:48 +02:00
Daniel Kirchner
b0a5666b43
Better error messages when writing to expressions that cannot be written to.
2019-08-14 17:59:48 +02:00
chriseth
57125de9ef
Remove ContainsMSize from side-effect-collector.
2019-08-13 13:34:33 +02:00