v1.2.1
Patch Changes
-
#1377
f3b51beThanks @ggiraldez! - Bind untyped tuple deconstruction elements as references, not declarations -
#1335
6c3ad5dThanks @ggiraldez! - Top-levelConstantDefinitions now bind to their type and resolve extension functions called on them -
#1338
18be0bcThanks @ggiraldez! - Make try/catch parameters and vars in for loop initialization available in Yul -
#1339
f16e4b5Thanks @ggiraldez! - Fixes to the binding rules in Solidity:- Make the
.lengthmember available in all static-size byte arrays - Allow assembly blocks (and nested Yul functions) to access inherited state variables
- Allow assembly blocks access to constructor/modifier/fallback parameters
msg.senderis ofaddresstype (notpayable) until 0.5.0- Top-level constants need to be visible from assembly blocks in files that import them
- Resolve named arguments when calling an extension function
- Imported symbols using deconstruction syntax can be bound in assembly blocks
- Make the
-
#1353
8e718ddThanks @ggiraldez! - Fixes to the binding rules in Solidity:- Values of the deprecated
bytetype have alengthmember until 0.8.0 - Bind a qualified identifier in the same contract, ie.
Foo.xin a method body ofFoo - Correctly bind external constants and built-ins in nested functions in assembly blocks
- Literal boolean values should bind to the
booltype to chain extension functions - Public state variables the generate getters should have members of external functions (such as
.selector) - Event types have a
selectormember
- Values of the deprecated
-
#1326
045179bThanks @ggiraldez! - Fixes to binding rules:- Update
TupleDeconstructionStatementso that their definiens is theTypedTupleMember/UntypedTupleMemberfor each variable declared. - Update
YulVariableDeclarationStatementso that their definiens is theYulIdentifierfor each variable declared.
- Update
-
#1350
0594fe8Thanks @ggiraldez! - Fixes to bindings rules in Solidity:- Allow binding of
usingdirectives inside interfaces in Solidity < 0.7.1 - Bind literal fixed arrays types
- Fix generating binding graph for built-ins: remove the
memorylocation specifier from types so they bind properly - Fix return type of
value()andgas()legacy call options to allow chaining them - Bind legacy call options in the result of
newexpressions - Bind output type of public getters when the state variable is a nested mapping or array
- A
usingdirective with theglobalmodifier should impact the source unit's lexical scope - Relax the Solidity version where the
transfer()method works for non-payable addresses; this is a workaround for a Solidity quirk that makes it possible to doaddress(uint160(to)).transfer(amount)even after 0.5.0 - Fix bound return types of
wrap()andunwrap()methods of a user value defined type - Resolve the type of
min()andmax()oftype()expressions for integer types to the integer type given in the expression operand - Fix binding of fully qualified modifier invocations
- Fix #1321:
min()andmax()fortype()expressions onenumtypes should bind only after Solidity 0.8.8 - Bound type for literal number expressions is
uint256by default; this allows correctly binding extension methods operating on literal values - The type
bytesis an array type and should bind thepush()andpop()methods - Contract or interface reference values implicitly inherit from the
addresstype on Solidity < 0.5.0 - Modifiers are allowed inside interfaces until Solidity 0.8.8 and thus should properly bind and be accessible from inheriting contracts
- Libraries before Solidity 0.5.0 allowed
thisin function methods and work as anaddresstype
- Allow binding of