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
chriseth
48f0d41cc5
Merge pull request #6294 from ethereum/merge-canBeUsedExternally-and-interfaceType-6223
...
Merge interfaceType() canBeUsedExternally()
2019-03-14 18:12:07 +01:00
Mathias Baumann
4d060ef991
Merge interfaceType() canBeUsedExternally()
...
And cache the result for expensive calls.
2019-03-14 17:19:59 +01:00
Mathias Baumann
3b546acd57
Clarify documentation of ContractType::m_super
2019-03-14 15:59:26 +01:00
Erik Kundt
b9a7a88346
Improves Result<T> in order to prevent defects.
2019-03-14 14:33:28 +01:00
Mathias Baumann
e411a502fd
Fix missing trailing dot in error message
2019-03-11 16:15:18 +01:00
Mathias Baumann
d70cb375cf
isImplicitlyConvertibleTo(): Add better error messages
2019-03-11 13:38:02 +01:00
Mathias Baumann
9052a8f050
Move FunctionType::returnParameters() to CallableDeclaration
...
all the other functions of that type are also found there.
2019-03-06 11:13:01 +01:00
Mathias Baumann
b2262d67f0
Remove unused variable Contractdefinition::m_linearizedBaseContracts
2019-03-06 11:13:01 +01:00
Alex Beregszaszi
d2f493268b
Provide access to the name of contracts.
2019-02-26 14:07:03 +00:00
Mathias Baumann
c65a96d189
Small documentation fixes in the code
2019-02-21 12:54:39 +01:00
chriseth
fb07462d82
Fix: Do use actual ABI signatures for events also in libraries instead of internal signature.
2019-02-20 14:35:24 +01:00
Daniel Kirchner
d74198b3cc
Remove misleading note in Type::calldataEncodedSize.
2019-02-18 16:18:40 +01:00
Daniel Kirchner
0408130338
Merge pull request #6003 from ethereum/moreStyleChecks
...
Even more style checks.
2019-02-15 11:52:32 +01:00
Daniel Kirchner
809b9a95f9
Even more style checks.
2019-02-14 11:53:00 +01:00
Daniel Kirchner
32190dac48
Add stride helpers to ArrayType.
2019-02-14 10:51:39 +01:00
chriseth
1a823f0bf8
Fix tabs/spaces.
2019-02-13 17:05:48 +01:00
chriseth
17ea467e5b
Fix style of "const".
2019-02-13 16:34:53 +01:00
Daniel Kirchner
0e4912a203
ABIEncoderV2: Implement calldata structs without dynamically encoded members.
2019-02-11 15:46:58 +01:00
chriseth
b5a2c66771
Merge pull request #5957 from ethereum/function-param-fix
...
Ensure function parameter names always matches parameter types length
2019-02-11 15:45:28 +01:00
chriseth
0c2d623ee4
Enable struct encoding.
2019-02-11 11:37:47 +01:00
Mathias Baumann
57c1c8b46c
Ensure function parameter names always matches parameter types length
2019-02-11 10:57:57 +01:00
Alex Beregszaszi
ee09d54525
Change FIXMEs into TODOs where appropriate
2019-01-29 00:35:23 +00:00
chriseth
e3791d6dcf
Fix reported packed encoded size for arrays and structs.
2019-01-23 11:13:22 +01:00
Alex Beregszaszi
7b759866cb
Merge pull request #5817 from ethereum/refactoring
...
Refactoring in TypeChecker and ContractDefinition
2019-01-18 11:36:49 +00:00
Daniel Kirchner
a766efc79f
Add ContractDefinition::isInterface.
2019-01-18 12:11:35 +01:00
chriseth
a9fa2658d8
Add helper to show if contract can be deployed.
2019-01-17 20:36:48 +01:00
chriseth
e6fee257e6
Code generation for access to contract code.
2019-01-17 20:36:48 +01:00
chriseth
2fcfb216b5
Syntax for meta type information.
2019-01-17 20:36:48 +01:00
Christian Parpart
62fe57479e
make use of C++ = default
constructor declarations as well as more non-static member initialization syntax.
2018-12-19 11:26:42 +01:00
Leonardo Alt
b185d01a26
Sort includes in libsolidity/ast
2018-12-17 15:33:15 +01:00
chriseth
baaefb4b42
Merge pull request #5619 from ethereum/cleanup-abc
...
Some code cleanup
2018-12-10 19:22:02 +01:00
Mathias Baumann
2f6dc2e773
Replace push_back with emplace_back where it makes sense
2018-12-10 19:02:39 +01:00
Yi Huang
81f703427e
Add tests for implcit conversions from literals to fixed-point numbers.
2018-12-10 17:31:20 +01:00
Erik Kundt
e2395a3dcf
Adds more detailed type errors and tests.
2018-12-07 12:35:35 +01:00
Erik Kundt
b2afb8cdda
Adds an additional message to failing type conversions.
2018-12-07 11:55:53 +01:00
chriseth
5fde279d2a
Merge pull request #5514 from corollari/develop
...
Remove unary + from the type system
2018-12-06 10:27:09 +01:00
Albert
df08d79623
Fix #5470
...
Remove unary + from the type system
2018-12-06 01:54:04 +01:00
chriseth
3a378eae1a
Restrict toHex to bytes
.
2018-12-05 22:37:05 +01:00
Erik Kundt
e3accc6aa6
Simplifies Result<T> and prevents undefined behaviour.
2018-12-05 10:33:34 +01:00
Erik Kundt
05e74d096e
Introduces Result<T> for operator and implicit conversion type checks.
2018-12-05 10:33:34 +01:00
Anurag Dashputre
82f5763e7a
Fix internal compiler error for unimplemented base contract function.
2018-12-03 12:25:31 +01:00
chriseth
aaeb74f592
Merge pull request #5537 from ethereum/cp-SourceLocation-related-refactoring
...
[1/3] SourceLocation related refactoring.
2018-11-30 23:45:31 +01:00
Christian Parpart
c48a5264be
liblangutil: SourceLocation: adds (shared) pointer to underlying CharStream source, eliminating sourceName
...
Also, adapted affecting code to those changes.
2018-11-30 17:07:12 +01:00
chriseth
f6d013237d
Merge pull request #5538 from hydai/static_uint256
...
Replace IntegerType(256) with static function IntegerType::uint256()
2018-11-29 11:17:33 +01:00
Leonardo Alt
1d47919c0c
Fix ICE when function type struct parameter has field of non-existent type
2018-11-29 10:38:47 +01:00
hydai
9326adc3db
Replace IntegerType(256) with static function IntegerType::uint256()
2018-11-29 17:07:18 +08:00
chriseth
bc137c2eeb
Merge pull request #5485 from ethereum/refactorCallableFunction
...
Refactor callable function
2018-11-26 12:34:43 +01:00
Christian Parpart
ec47c8946b
Isolating libyul library API into its own namespace yul
.
2018-11-23 14:29:00 +01:00
Christian Parpart
0f4ed52a71
Rewrite header paths to adapt to recent git mv
of libsolidity/inlineasm to libyul
2018-11-23 11:18:57 +01:00
chriseth
92ba8a95f6
Make asCallableFunction to never fail and assert abount parameter size if bound instead.
2018-11-22 15:47:45 +01:00
chriseth
9e964852cc
Rename 'asMemberFunction' to widen its purpose.
2018-11-22 15:24:45 +01:00
Christian Parpart
d67322a186
Introduce namespace langutil
in liblangutil directory.
...
Also:
- Use {}-style list initialisation for SourceLocation construction
- Introduce new system includes
- Changes the API of the Scanner to take source as value (with move) as opposed to as a reference
2018-11-21 19:13:44 +00:00
Christian Parpart
87821c53c3
Isolating files shared between Yul- and Solidity language frontend.
2018-11-21 18:58:12 +00:00
mordax
ea8b7d803e
Removing redundant virtual from override function declaration
...
Remove trailing whitespace
Remove changelog change
2018-11-21 14:37:32 +00:00
chriseth
2cc304fd3f
Fix for style.
2018-11-12 09:15:22 +01:00
chriseth
6bbedab383
Merge pull request #5265 from ethereum/cleanupsha3
...
Simplify sha3.
2018-11-09 15:39:57 +01:00
chriseth
cc2de07bc6
Merge pull request #5348 from ethereum/boostRationalNegativeDenominatorFix
...
Fix negative denominator in ``boost::rational`` during exponentiation.
2018-11-08 11:25:30 +01:00
chriseth
674e17c2a8
Performance: Replace string by special single-copy YulString class.
2018-11-07 19:30:27 +01:00
Daniel Kirchner
e036133d1b
Fix negative denominator in `boost::rational
` during exponentiation.
2018-11-06 10:52:10 +01:00
Erik Kundt
1d8e9af407
Fixes crash while encoding too large arrays.
2018-10-30 15:14:57 +01:00
chriseth
39687cf110
Remove unused AST utils.
2018-10-25 14:02:09 +02:00
Christian Parpart
f112377dd4
Refactor solidity::Token
into an enum class
with TokenTraits
helper namespace
2018-10-22 17:00:51 +02:00
chriseth
e78b95d9d4
Renamed SHA3.{h,cpp} files.
2018-10-18 14:31:36 +02:00
Christian Parpart
4d5216c2e0
Fixes large rational number literals being wrongly interpreted.
...
Fixes #5052 .
2018-10-09 14:36:49 +02:00
chriseth
7ff9a27979
Merge pull request #4734 from ethereum/astUpdate
...
JSON AST: replace ``isConstructor`` by ``kind`` which also supports fallbacks
2018-10-08 21:47:27 +02:00
Christian Parpart
9fb835b710
Fixes #5051 (introduced in #4684 ), effectively allowing underscores in address literals.
2018-10-02 15:37:15 +02:00
chriseth
db4f780283
Merge pull request #4962 from anurag-git/anurag_issue_3667-1
...
Removed default case from "ExpressionCompiler::visit(FunctionCall...)".
2018-10-01 13:24:26 +02:00
Anurag Dashputre
3321000f67
Removing extra default cases to force compile time error, instead of runtime.
2018-09-30 12:40:38 +05:30
Alex Beregszaszi
00b1b96eb4
Use better assertion messages for RationalNumberType::literalValue
2018-09-26 13:05:58 +01:00
chriseth
32112d6480
Merge pull request #5041 from liangdzou/fix_typo_in_doc
...
fix typo in docs and comments
2018-09-24 13:52:33 +02:00
Alex Beregszaszi
8f96fe698d
Merge pull request #5049 from ethereum/structtype-assert-annotation
...
Add assertion for annotated type in Structtype::canBeUsedExternally
2018-09-21 15:02:26 +01:00
Alex Beregszaszi
69ff61d149
Add assertion for annotated type in Structtype::canBeUsedExternally
2018-09-21 14:25:05 +01:00
liangdzou
f347dee812
fix typo
2018-09-21 09:27:33 +08:00
chriseth
dc9853bb6e
Merge pull request #5030 from ethereum/payableConversion
...
Make non-payable default for conversion to address.
2018-09-20 21:20:46 +02:00
liangdzou
44e8dfd393
fix typo
2018-09-20 22:54:57 +08:00
chriseth
d0461c49fe
Make non-payable default for conversion to address.
2018-09-20 14:31:04 +02:00
Jordan Last
d0497aacc0
fixing rebase conflicts
...
add ElementaryTypes::BytesMemory and ElementaryTypes::StringMemory
fix rebase conflicts
fixing rebase conflicts
use make_shared instead of new
fix tabs and StateMutability parameter
create address and addressType functions, fix spaces in comment
fix typo and switch nonpayable to payable
fix spaces
fix comment again
2018-09-13 15:53:06 -06:00
Daniel Kirchner
ae35a58124
Add `stateMutability
field to JSON AST for
address
` types.
2018-09-13 15:15:49 +02:00
Daniel Kirchner
12aaca1645
Add payable and non-payable state mutability to AddressType.
2018-09-13 15:15:49 +02:00
Daniel Kirchner
1ce3581a52
Accept `address payable
` during parsing.
2018-09-11 14:52:23 +02:00
Daniel Kirchner
a434896458
Restore `isConstructor
` in the legacy AST.
2018-09-11 14:47:25 +02:00
Daniel Kirchner
395ab9a872
Replace `isConstructor
field in the JSON AST by a
kind
` field.
2018-09-11 14:47:25 +02:00
Daniel Kirchner
87804b6419
Split IntegerType into IntegerType and AddressType.
2018-09-05 12:19:14 +02:00
Daniel Kirchner
82f512a7d4
Add return data to bare calls.
2018-09-04 13:31:10 +02:00
chriseth
2783905bab
Merge pull request #4837 from chase1745/default-to-unspecified
...
Rename `Location::Default` to `Location::Unspecified`
2018-09-03 18:44:41 +02:00
chriseth
758bc1614c
Merge pull request #4851 from anurag-git/anurag_issue_4824
...
Removed unused "FunctionType::Kind::CallCode"
2018-09-03 16:51:05 +02:00
Anurag Dashputre
94c327c1ae
Removed unused "FunctionType::Kind::CallCode" from Types.h and all its usage
2018-08-23 13:09:00 +05:30
Anurag Dashputre
8497dcd721
Merge branch 'develop' into anurag_issue_3667
2018-08-23 11:56:45 +05:30
Anurag Dashputre
55524788e2
Removed the default cases related to assertion to detect the problem at compile-time instead of run-time
2018-08-23 11:47:00 +05:30
Chase McDermott
551e0bf47c
Rename Location::Default to Location::Unspecified.
2018-08-17 18:15:22 -05:00
Anurag Dashputre
435cd95c54
Default case removed to detect errors at comoile time rather than run time
2018-08-17 18:37:35 +05:30
chriseth
c274af0770
Merge pull request #4825 from ethereum/expressionCompBareCall
...
More safeguards for (library) function types.
2018-08-16 14:38:44 +02:00
liangdzou
74c37935f0
fix a typo: declaratoion => declaration
2018-08-16 13:42:46 +08:00
chriseth
455345871d
More safeguards for (library) function types.
2018-08-15 17:11:43 +02:00
Daniel Kirchner
7ca0aaaf6f
Add `staticcall
to
address
`.
2018-08-15 16:06:48 +02:00
chriseth
9328ea4c3c
Add abi.decode(bytes data, (...))
2018-08-15 10:45:16 +02:00
Chase McDermott
683bce1869
Refactor data location check.
2018-08-14 18:07:15 +02:00
chriseth
3f42118d19
Merge pull request #4765 from ethereum/fixes-issue-4673
...
[WIP] Fixes issue where computing storage size for a number would take too long (or even cause a crash).
2018-08-14 17:34:04 +02:00
Jesse Busman
c059119145
Add implicit convertibility to function pointer with higher state mutability
2018-08-14 17:13:10 +02:00
chriseth
ec7ccbdf86
Merge pull request #4782 from ethereum/encodePackedArrayOfStructs
...
Encode packed array of structs
2018-08-14 16:32:57 +02:00
Christian Parpart
43bda53410
Fixes issue where computing storage size for a number would take too long.
...
Fixes #4673 .
2018-08-14 15:38:10 +02:00
Daniel Kirchner
7d7abeb149
Disallow ambiguous conversions between number literals and bytesXX types.
2018-08-13 14:27:01 +02:00
chriseth
0b65b2dff6
Disallow packed encoding of arrays of structs.
2018-08-09 21:16:51 +02:00
Alex Beregszaszi
ed52f422b7
Rename FunctionKind SHA3 to KECCAK256 (as the instruction was renamed in libevmasm)
2018-08-08 22:37:40 +01:00
chriseth
d634d20b5b
Merge pull request #4684 from ethereum/underscores_in_numeric_literals
...
[BREAKING] Underscores in numeric literals
2018-08-08 21:36:57 +02:00
Alex Beregszaszi
9062704054
Merge pull request #4753 from mattaereal/boost-to-string-patch
...
Replace boost:lexical_cast<std::string> for std::to_string.
2018-08-08 16:07:25 +01:00
Matías Aereal Aeón
e902ce1aa0
Removing std:: from std::to_string and include for boost/lexical_cast
2018-08-08 11:26:30 -03:00
Alex Beregszaszi
1bfb841771
Remove experimental 0.5.0 pragma
2018-08-08 14:05:36 +01:00
Christian Parpart
b9222808f6
Cleanup & polish numbers-with-underscores parsing, also improving tests.
2018-08-08 13:38:46 +02:00
chriseth
d0863f4994
Merge pull request #4748 from ethereum/validate-identifier
...
Assert that type identifier contains only valid characters
2018-08-08 12:50:45 +02:00
Balajiganapathi S
09a36cba02
Add stricter hex underscore rules
2018-08-08 12:05:51 +02:00
Alex Beregszaszi
3064bd17bc
Assert that type identifier contains only valid characters
2018-08-07 22:29:21 +01:00
Daniel Kirchner
b11e39e25e
Remove remaining instances of `fillRight
` left over from tuple wildcards assignments.
2018-08-07 18:51:53 +02:00
chriseth
a949cffd24
Merge pull request #4699 from ethereum/cleanup_VariableDeclaration
...
libsolidity: Remove dead code wrt. VariableDeclaration::canHaveAutoType
2018-08-07 16:14:41 +02:00
chriseth
c61cc98d0d
Merge pull request #4726 from ethereum/moveNothrow
...
Make MemberList nothrow move constructible.
2018-08-07 16:11:59 +02:00
Alex Beregszaszi
b0f9fc5af0
Fix type identifiers for RationalNumberType
2018-08-07 13:23:14 +01:00
chriseth
133fd3d302
Make MemberList nothrow move constructible.
2018-08-07 14:20:18 +02:00
Christian Parpart
4c90ddf64a
libsolidity: Remove dead code wrt. VariableDeclaration::canHaveAutoType()
...
Closes #4667
2018-08-07 11:34:13 +02:00
Alex Beregszaszi
bd75d4268b
Move fullyQualifiedName to ContractDefinition only
2018-08-06 18:58:27 +02:00
chriseth
276724dedc
Merge pull request #4663 from ethereum/dropConstantAST
...
[BREAKING] Drop constant field from JSON AST
2018-08-06 18:55:12 +02:00
Jesse Busman
3fcd62921e
Renamed FunctionType::hasEqualArgumentTypes to FunctionType::hasEqualParameterTypes
2018-08-06 13:05:06 +02:00
Daniel Kirchner
44374a5846
Remove "constant" from JSON AST.
2018-08-06 11:15:25 +02:00
chriseth
90a5928b88
Merge pull request #4522 from ethereum/fullEncodingType
...
Isolate determining the encoding type into its own function.
2018-08-02 15:01:38 +02:00
Christian Parpart
38f9667e09
Guard CycleDetector against recursion exhaustion.
...
fixes #3935 .
2018-08-01 12:02:59 +01:00
chriseth
7a8a243eef
Isolate determining the encoding type into its own function.
2018-08-01 11:55:57 +01:00
chriseth
c8232d9759
Disallow conversion between unrelated contract types.
2018-08-01 11:04:35 +01:00
chriseth
e3c2f20f6e
Merge pull request #4439 from ethereum/address_members
...
[BREAKING] Enforce address members not accessible by contract instance
2018-07-19 09:24:27 +02:00
Erik Kundt
182a0a9551
Disallows old constructor syntax.
2018-07-18 14:29:01 +02:00