Daniel Kirchner
3af43fd350
Extract typing.
2020-04-14 10:59:28 +02:00
chriseth
748afe0edd
Merge pull request #8630 from ethereum/encoding-bug-functionCallOption
...
TypeChecker error when encoding functions with call options; tests
2020-04-08 16:33:24 +02:00
chriseth
baefab78d8
Merge pull request #8628 from ethereum/fiximmutableastexport
...
Export immutability.
2020-04-07 18:37:09 +02:00
hrkrshnn
229587672f
TypeChecker error when encoding functions with call options; tests
2020-04-07 21:11:46 +05:30
chriseth
236eff8416
Export immutability.
2020-04-07 17:30:54 +02:00
chriseth
823a119117
Merge pull request #8570 from aarlt/clang-tidy-apply-modernize-use-emplace
...
clang-tidy: Apply modernize-use-emplace.
2020-04-07 17:28:50 +02:00
chriseth
398c515982
Merge pull request #8618 from mijovic/nextConstructorRefactor
...
Refactoring nextConstructor by moving it from CompilerContext to ContractDefinition
2020-04-06 19:31:12 +02:00
Djordje Mijovic
8cc16eb128
Refactoring nextConstructor by moving it from CompilerContext to ContractDefinition
2020-04-06 17:35:08 +02:00
chriseth
f7aba45457
Merge pull request #8592 from random-internet-cat/ast-visitor-constructor
...
Delete copy and move operations for ASTVisitor and ASTConstVisitor
2020-04-06 14:16:20 +02:00
Jason Cobb
205063f86b
Delete copy and move operations for ASTVisitor and ASTConstVisitor
2020-04-03 23:47:10 -04:00
Jason Cobb
7f5857a146
Delete copy/move on annotation polymorphic bases
2020-04-02 22:33:21 -04:00
Alexander Arlt
90bb1d8a7c
Apply modernize-use-emplace.
2020-04-02 17:35:48 -05:00
Leonardo Alt
39ff0deb05
Zero initialize memory arrays
2020-04-02 15:55:18 +02:00
Mathias Baumann
ac7b31e559
Validate immutable variables
2020-04-02 13:52:27 +02:00
Mathias Baumann
9a8ca6ca33
Always return this
for EventDefinition::resolveVirtual
...
Instead of asserting.
2020-04-02 13:52:27 +02:00
chriseth
173f234860
Refactor: Replace inheritance hierarchy by most derived contract.
2020-03-26 18:27:39 +01:00
Daniel Kirchner
04d8ad2ae1
Legacy codegeneration for immutable state variables.
2020-03-24 16:45:25 +01:00
Daniel Kirchner
fe659ceb41
Anything outside storage is always a pointer.
2020-03-23 15:34:10 +01: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
chriseth
92d4bbb017
Salt should be bytes32.
2020-03-10 22:38:11 +01:00
chriseth
a328e940b5
Merge pull request #8429 from ethereum/astJsonImportYulBlock
...
Fix yul ast import for blocks, switches and string literals.
2020-03-08 17:06:05 +01:00
Daniel Kirchner
e58a1de57f
Merge pull request #8431 from mijovic/sol2YulSelectorAddress
...
Adding sol->yul for f.selector and f.address
2020-03-06 22:48:38 +01:00
Djordje Mijovic
092827b7ad
Adding sol->yul for f.selector and f.address
2020-03-06 21:43:14 +01:00
Daniel Kirchner
2df5ca0774
Merge pull request #8385 from ethereum/immutable
...
Immutable state variables (1)
2020-03-06 14:20:13 +01:00
Daniel Kirchner
7f38cbb91d
Fix calling unimplemented base function.
2020-03-06 10:51:16 +01:00
Daniel Kirchner
420f57aec3
Fix yul ast import for blocks, switches and string literals.
2020-03-05 14:09:13 +01:00
chriseth
1488a1ceb8
Refactor isConstant to add "immutable".
2020-03-02 14:20:17 +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
Daniel Kirchner
3c9f18b749
Use IRVariable's in IR code generation and implement tuples.
2020-02-12 12:36:14 +01:00
Daniel Kirchner
6abe0a50b1
Define stack slot names in types.
2020-02-12 12:36:14 +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
alex
3416c029cf
Relaxed assert in AsmJsonImporter::createAsmNode.
2020-02-04 20:37: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
211227f50b
Modified SourceLocation::hasText() to allow empty source.
2020-02-04 04:19:28 +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
4a179056ed
Adds JSON import / export for structured documentation.
2020-01-30 18:26:01 +01:00
Erik Kundt
ec27c2e507
Introduce AST node for structured documentation.
2020-01-30 18:25:56 +01:00
Erik Kundt
893fb4d05b
Implements AST JSON import for function call options.
2020-01-23 21:20:01 +01:00
Mathias Baumann
a3f23d3158
Implement new with CREATE2 and function call options.
2020-01-23 21:20:01 +01: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
chriseth
c017072bac
Merge pull request #8013 from ethereum/warnings
...
Enable more warnings in the build system
2020-01-15 18:00:14 +01:00
Daniel Kirchner
c450b18673
Remove remaining instances of new.
2020-01-15 17:25:08 +01:00
Alex Beregszaszi
eafcb42be7
Enable more compiler warnings in the build system
...
"-pedantic -Wno-unknown-pragmas -Wimplicit-fallthrough"
2020-01-15 14:33:27 +00:00
djudjuu
e8556fa1b2
Ast-Import from standard-json
2020-01-14 17:15:53 +01:00
Mathias Baumann
adc4774d4a
ASTJSON: Export evm version
2020-01-14 12:51:21 +01:00
chriseth
a4e34b378a
Merge pull request #8105 from ethereum/functionTypeRefactor
...
Add a new Function Type referring to FunctionDefinition's without calling context and use it to allow selector lookup.
2020-01-09 17:15:46 +01:00
Daniel Kirchner
9535c0f520
Introduce FunctionKind::Declaration and allow accessing function signatures via contract name.
2020-01-09 15:40:41 +01:00
Jason Cobb
3726f7448e
Remove now-unused abstractAnnotation helper
2020-01-09 08:44:24 -05:00
Jason Cobb
dc380f017f
Make CallableDeclaration::annotation pure virtual
2020-01-09 08:37:32 -05:00
Jason Cobb
dc6c19cafa
Add methods for AST annotation implementation
2020-01-09 08:37:32 -05:00
Leonardo Alt
a02308cfa5
Replace void cast by maybe_unused
2020-01-09 13:41:30 +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
Jason Cobb
6679f92c8a
Move all references to scope into annotation
2019-12-19 21:45:16 -05:00
Jason Cobb
69fd185903
Add new annotations for Scopables
2019-12-19 21:45:16 -05:00
Jason Cobb
30b1b39901
Have other annotations subclass DeclarationAnnotation
2019-12-19 21:45:16 -05:00
Jason Cobb
be14d5f28d
Add DeclarationAnnotation
2019-12-19 21:45:16 -05:00
Jason Cobb
bc71f61467
Add ScopableAnnotation
2019-12-19 20:50:43 -05:00
chriseth
bdd338a8de
Merge pull request #7921 from ghallak/func-selector-ast-json
...
Add function selector to FunctionDefinition AST JSON
2019-12-16 14:07:35 +01:00
Gaith Hallak
371e6a4801
Add function selector to FunctionDefinition AST JSON
2019-12-16 15:16:54 +03:00
Alex Beregszaszi
4a2a2eb635
Remove Boost <1.55 workaround for multiprecision::msb()
2019-12-13 00:15:15 +00:00
chriseth
f1e7bec11d
Include public state variables' base functions in the AST.
2019-12-11 15:32:28 +01:00
chriseth
57824566e6
Use 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
a66b5ea0ad
Fix visitor.
2019-12-10 16:54:04 +01:00
chriseth
152f42c6b2
Make ambigous override checker generic.
2019-12-09 18:41:39 +01:00
Mathias Baumann
e999409c89
Sync & update AST exporting according to AST changes
2019-12-09 10:42:24 +00:00
chriseth
e061f1e743
Merge remote-tracking branch 'origin/develop' into HEAD
2019-12-05 16:44:26 +01:00
Gaith Hallak
4d90180e24
Support referencing other constants in inline assembly
2019-12-05 13:27:17 +03:00
Daniel Kirchner
8b35918ad0
Replace superFunction by baseFunctions in AST annotations and JSON AST.
2019-12-05 03:33:32 +01:00
chriseth
1ebcc757e1
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-27 19:14:08 +01:00
chriseth
23181f549e
Remove plain new operators from AST.
2019-11-27 18:03:09 +01:00
chriseth
0bb88dabb7
Restrict usage of plain "new".
2019-11-27 17:55:11 +01:00
chriseth
b0db64ff5b
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-26 16:19:35 +01:00
chriseth
0973ae751a
Do not warn about enabled ABIEncoderV2 anymore.
2019-11-26 15:49:42 +01:00
Gaith Hallak
4a1e85436b
Allow splitting string literals into multiple parts
2019-11-26 14:41:30 +03:00
chriseth
a00f824479
Merge pull request #7773 from ethereum/develop
...
Merge develop into develop_060
2019-11-21 21:49:22 +01:00
chriseth
8f2595957b
Merge pull request #7719 from ethereum/librarySignatuŕes
...
Add selector member to public and external library functions.
2019-11-20 18:43:14 +01:00
Leonardo Alt
389da5228e
Merge remote-tracking branch 'origin/develop' into merge_develop_060
2019-11-20 12:27:40 +01:00
Mathias Baumann
23cad71c88
Disallow conversion from `super
`
2019-11-19 17:14:11 +01:00
chriseth
6797879128
Merge pull request #7647 from ethereum/virtual-5424
...
Implement virtual keyword
2019-11-19 13:21:27 +01:00
Daniel Kirchner
a0ae36ba70
Add selector member to public and external library functions.
2019-11-15 16:12:29 +01:00
chriseth
216e1749f4
Merge remote-tracking branch 'origin/develop' into develop_060
2019-11-14 13:42:46 +01:00
Mathias Baumann
5b8ff78176
Implement virtual keyword
2019-11-14 11:49:39 +01:00
Mathias Baumann
7d4e4b6088
Parse "virtual" keyword
2019-11-13 13:28:01 +01:00
djudjuu
e437443645
Inline assembly to AST json export
2019-11-13 12:13:22 +01:00
Daniel Kirchner
ce7268272d
Allow obtaining the address of a library by conversion to `address
`.
2019-11-12 17:09:13 +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
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
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
b76106fc4a
Parse override keyword for modifier definitions
2019-10-30 17:31:33 +01:00
chriseth
edf1e83fda
Merge remote-tracking branch 'origin/develop' into develop_060
2019-10-28 15:21:49 +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
Mathias Baumann
c3e8023ad5
Fix wrong assert in overflow check
2019-10-23 14:59:34 +02:00
Gaith Hallak
62a62555bc
Remove trailing spaces from JSON output
2019-10-02 19:02:35 +02:00
Gaith Hallak
9d34d7de2f
Remove trailing spaces from JSON output
2019-10-02 18:01:47 +03:00
chriseth
f884373142
Merge branch 'origin/develop' into develop_060
2019-10-02 16:29:36 +02:00
Daniel Kirchner
7202ebb5b2
Fix internal compiler error for arrays of recursive structs.
2019-10-01 16:51:14 +02:00
Christian Parpart
00d7dac15f
Fixes source location in warning for shadowing import delcarations.
2019-09-30 11:45:46 +02:00
chriseth
8e736a9f49
Type Checker for try/catch.
2019-09-23 17:22:56 +02:00
chriseth
a66c354698
AST for try and catch.
2019-09-23 17:22:09 +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
Daniel Kirchner
5d69bdf81e
Remove ASTPrinter.
2019-09-06 12:38:55 +02:00
krk
33f7f960cf
Allow exponentials with signed base and unsigned power.
2019-09-04 17:32:47 +02:00
Mathias Baumann
24716404f8
Parse override keyword
2019-08-26 17:34:21 +02:00
Mathias L. Baumann
502bf01be2
Merge pull request #7278 from ethereum/develop
...
Merge develop into develop_060
2019-08-26 10:26:48 +02:00
Mathias Baumann
0e3ff25b4e
Make sure json output array order is consistent
...
The source of the "contractDependencies" value was an std::map, thus
order was more or less random.
2019-08-19 17:42:03 +02:00
Daniel Kirchner
9f6fff2120
Replace casting of external functions to address by a member named "address".
2019-08-19 14:56:04 +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
Leonardo Alt
7b22496b1f
[SMTChecker] Fix ICE when inlining functions that use state vars and are in a different source
2019-08-09 17:50:52 +02:00
mingchuan
15631a7fbe
Split calldataEncodedSize into calldataEncodedSize, calldataEncodedTailSize and calldataHeadSize and fix all usages.
2019-08-08 15:52:21 +02:00
rocky
7fd7cc1e76
Produce AST even when there are parser errors
2019-08-07 15:25:53 +02:00
Mathias Baumann
e887c06f6b
FunctionType: Return correct stacksize for transfer/send
2019-08-01 13:56:09 +02:00
Christian Parpart
7b3aba81fb
Adds a test to check_style.sh to check for spaces before colon (:) in range based for loops.
2019-06-24 17:32:58 +02:00
Daniel Kirchner
4d38df6920
Set state mutability of function type members `gas
and
value
` to pure.
2019-06-13 18:27:53 +02:00
mingchuan
bf8af89bba
Fix assignment of struct containing array of mappings
2019-05-25 01:33:49 +08:00
chriseth
9a00729ce7
Provide dialect to Parser and InlineAssembly AST nodes.
2019-05-23 00:24:58 +02:00
Leonardo Alt
dcd6cb94bf
Add function that retrieves first FunctionDefinition up the scope path
2019-05-09 09:15:11 +02:00
Leonardo Alt
371b37b660
Fix direct call to base class overloaded functions
2019-04-26 09:34:15 +02:00
chriseth
fb302c1c4f
Merge pull request #6473 from ethereum/libeventhash-6435
...
Fix external ABI type name for contracts
2019-04-18 12:53:34 +02:00
Mathias Baumann
0f4b53e9a0
Fix external ABI type name for contracts
2019-04-18 11:39:48 +02:00
Christian Parpart
9733ae7483
[libsolidity] TypeProvider: cleanup unnecessary std:: qualifiers
2019-04-17 14:45:29 +02:00
Christian Parpart
721bf367a3
[libsolidity] TypeProvider: eliminate redundant "Type" suffix in provider function signatures.
2019-04-17 14:42:07 +02:00
Christian Parpart
862b65d6e3
[libsolidity] remove ReferenceType::copyForLocationIfReference (use TypeProvider instead)
2019-04-17 13:25:03 +02:00
Christian Parpart
b83097bdc6
[libsolidity] Types: eliminate redundant MagicType::metaType() (use TypeProvider instead)
2019-04-17 12:59:48 +02:00
Christian Parpart
a99a460c79
[libsolidity] Types: remove some old comments
2019-04-17 12:00:33 +02:00
chriseth
4e2d4f02b0
Make data location explicit.
2019-04-16 23:22:08 +02:00
chriseth
2761aed1d3
Lazy-initialize string and bytes types.
2019-04-16 23:22:08 +02:00
chriseth
4656d7ca7d
Change pre-created types to unique_ptr to avoid copying and moving.
2019-04-16 23:22:08 +02:00
Christian Parpart
58a45f2cb6
[libsolidity] TypeProvider: adds explicit uint256() accessor and removes default params in integerType(...).
2019-04-16 18:28:40 +02:00
Christian Parpart
59d4f54729
libsolidity: Be more restrictive to not allow any copy constructors at all in Type system.
...
This enforces us to be a little bit more historical in how to initialize
our std::array<>'s in TypeProvider.
2019-04-16 18:26:46 +02:00
Christian Parpart
a2a3b007f3
TypeProvider: storageType() to make all parameters explicit
2019-04-16 18:26:46 +02:00
Christian Parpart
bf43eebea9
libsolidity: Introducing TypeProvider API, for clear type system ownership.
2019-04-16 18:26:45 +02:00
chriseth
6b69c31703
Fix ABIEncoderV2 array overwrite bug.
2019-03-25 18:28:43 +01:00
Mathias Baumann
4c2b1c1f29
ArrayType::interfaceType(): Rename local variable to make more sense
2019-03-21 07:25:59 +01:00
Mathias Baumann
7d809df91a
Add back StructType::recursive()
2019-03-21 07:25:59 +01:00
Mathias Baumann
8e899a0d32
Disallow internal function types as parameters for public/external library function
2019-03-21 07:25:57 +01:00
Mathias Baumann
0fbea8a1a0
Change return type for interfaceType() to ResultType
2019-03-21 07:25:28 +01:00
Mathias Baumann
84b68006ba
Fix function calls with named arguments for overloaded functions
2019-03-20 14:54:41 +01:00