Commit Graph

1345 Commits

Author SHA1 Message Date
Kamil Śliwak
dad2bf6472 Relax restrictions on immutable initialization 2023-07-14 15:29:32 +02:00
Nikola Matic
9a87b587d5 Disallow immutable initialization in try catch statements
Trigger github
2023-05-09 14:48:14 +02:00
Kamil Śliwak
34da6c8811 Remove the inaccurate Type::categoryName() and change the error message for invalid calls to one independent of the category 2023-04-20 13:50:22 +02:00
Kamil Śliwak
b85a95f52d Refactor TokenTraits::isUnaryOp() not to treat + as a unary operator 2023-04-18 16:49:31 +02:00
Kamil Śliwak
8a14680851 Disallow unary plus at the parsing stage 2023-04-18 16:47:00 +02:00
Kamil Śliwak
a019f400d0 Better error message when trying to call things that are not functions 2023-04-04 17:30:37 +02:00
Kamil Śliwak
c95108169d Fix member call on null pointer when type-checking built-in unary operators 2023-03-06 19:20:18 +01:00
wechman
5b03c13f90 User-defined operators: Analysis 2023-02-22 00:39:25 +01:00
Kamil Śliwak
1a981af548 Only suggest removing parentheses from a construction call if they're empty 2023-02-15 14:27:03 +01:00
Kamil Śliwak
73183d3df9 Fix missing base constructor arguments being treated as an unimplemented function 2023-02-15 14:27:03 +01:00
Matheus Aguiar
2b70b08d5f Allow library external functions to be bound with using for 2023-02-02 13:39:19 -03:00
Nikola Matic
e7543d487d Issue warning when using deprecated SELFDESTRUCT 2023-01-25 16:55:11 +01:00
Rodrigo Q. Saramago
ef6ff2f055
Adds support for the EVM version "Paris".
Deprecates `block.difficulty` and disallow `difficulty()` in inline assembly for EVM versions >= paris.
The change is due to the renaming introduced by EIP-4399 (see: https://eips.ethereum.org/EIPS/eip-4399).
Introduces `block.prevrandao` in Solidity and `prevrandao()` in inline assembly for EVM versions >= paris.

Co-authored-by: Alex Beregszaszi <alex@rtfs.hu>
Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com>
Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
2023-01-23 18:50:36 +00:00
Matheus Aguiar
7779b6f352 Forbid private library functions to be attached outside their declaration scope 2023-01-17 16:27:35 -03:00
Daniel
f441e1323a
Merge pull request #13384 from zemse/develop
Allow named parameters in mapping types
2023-01-09 17:59:29 +01:00
Soham Zemse
fa78e0f3d4 feat: allow named parameters in mapping types
Co-authored-by: Hari <webmail.hari@gmail.com>

test: add parser and abi test cases

docs: add example on using named parameters for mappings

- Add changelog

feat: update antlr grammar to allow named parameters in mappings

fix: prevent conflicting mapping parameter names

ref: change order of mapping initializers

test: update expectations and fix build

test: add more tests

fix: use common error & code for conflicting params

fix: issue with accessing nested mapping

test: add conflicting params tests for more nested levels

Update libsolidity/analysis/DeclarationTypeChecker.cpp

Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>

fix: error reported with the same code twice

test: add more tests for 3 level nested mapping

Address review comments
2022-12-08 11:56:58 +01:00
wechman
64a4f32bc2 Consistent terminology for attached/bound functions 2022-12-07 19:31:41 +01:00
Vinay
9e7b85ac4b Improve Error Reporting of SemVer Parser 2022-11-25 13:09:09 -03:00
wechman
edb4bfa398 ViewPureChecker: Extract reportFunctionCallMutability() helper from endVisit(FunctionCall) 2022-11-23 13:27:26 +01:00
wechman
27df07c4ce TypeChecker: Minor simplifications for operators and using for 2022-11-23 13:27:26 +01:00
wechman
fbe1181517 CFGNode: For function calls store a pointer to a resolved function definition rather than the FunctionCall AST node 2022-11-09 17:51:32 +01:00
Kamil Śliwak
a866aaebf3 Refactor several error messages in TypeChecker to use fmtlib 2022-11-07 17:13:41 +01:00
wechman
6da09e8d9a Error message tweak: built-in unary/binary operator 2022-11-07 17:13:41 +01:00
wechman
4c9a58eb0f Don't include location in a message about binding function to a type 2022-11-07 17:13:09 +01:00
wechman
d5428af5bb Make the message about name not referring to a user-defined type more generic 2022-11-04 08:46:53 +01:00
Alex Beregszaszi
725253551e Improve FunctionSelector helpers 2022-09-27 17:58:32 +02:00
Marenz
f7cc29bec1 Add std:: qualifier to move() calls 2022-08-30 11:12:15 +02:00
Daniel Kirchner
9a429e2300 Fix ICE on invalid tuple assignments. 2022-08-09 12:41:47 +02:00
Nikola Matic
40de2b0442 Add full stops to error messages 2022-08-05 09:52:48 +02:00
Duc Thanh Nguyen
a9e03f5e4a Fix out-of-range compiler crash for nested tuple assignment involving
outer unary tuple
2022-08-04 12:45:46 -04:00
Matheus Aguiar
9acf693aa2 Fixed bad cast when abiEncodeCall receives a tuple from a function. 2022-08-03 18:48:38 -03:00
Duc Thanh Nguyen
5072472917 Fix abi.encodeCall checks 2022-07-25 12:40:54 -04:00
chriseth
e2675002ca Settings struct for name resolution. 2022-07-14 17:22:17 +02:00
Duc Thanh Nguyen
0a14368315 Display human readable type name in conversion error message 2022-07-06 10:49:51 -04:00
Mathias L. Baumann
03409beb1d
Update libsolidity/analysis/NameAndTypeResolver.h
Co-authored-by: Damian Wechman <damian.wechman.it@gmail.com>
2022-06-22 13:25:24 +02:00
Marenz
18784cff81 Add all path declarations in IdentifierPath annotation 2022-06-20 18:08:57 +02:00
Ryan
3b2c6de61c Propagate purity information for member access to foreign pure variables 2022-06-16 17:11:55 +05:30
Daniel Kirchner
16245f7b9b Warn about multiple assignments to storage byte pushes and fix warnings about multiple storage to storage copies.
Co-authored-by: Kamil Śliwak <kamil.sliwak@codepoets.it>
2022-06-15 13:53:05 +02:00
Daniel Kirchner
d30b04674e Add resolveUnaryTuples helper. 2022-06-15 13:15:26 +02:00
Daniel Kirchner
53c4facf4e Fix compilation error. 2022-06-15 11:14:50 +02:00
Ryan
4b7ed2d47a Display human readable type name in conversion error message 2022-06-08 18:23:51 +05:30
chriseth
dfa0bcf760 More strict override check for data locations. 2022-05-17 13:02:12 +02:00
chriseth
505fa7763f Fix checks for "using for ... global" for libraries. 2022-05-02 12:40:56 +02:00
Ryan
3a17274691 Improve error message for static array with size too large 2022-04-05 17:36:37 +02:00
chriseth
755e043a6d Use error message for unary operators. 2022-04-04 16:53:36 +05:30
nishant-sachdeva
4c6066bfad typeCheckAbiEncodeCallFunction should type check the arguments on functionPointerType->asExternallyCallableFunction instead of teh plain function type 2022-03-24 18:53:46 +05:30
chriseth
28593839d9 Add helper to see if a switch has a default case. 2022-03-15 14:29:54 +01:00
chriseth
9188519f11 Using for with global binding. 2022-03-14 17:39:14 +01:00
Daniel Kirchner
0f1a63c3fa Fix import directive visits in type checker and view pure checker. 2022-03-14 14:53:06 +01:00
hrkrshnn
672951ccc7 Extend using-for. 2022-03-14 12:33:44 +01:00