From 5de66bf5e473c4cbb81ed2bf616671cb67dad7a9 Mon Sep 17 00:00:00 2001 From: chriseth Date: Wed, 25 Nov 2020 11:24:58 +0100 Subject: [PATCH] Documentation. --- Changelog.md | 4 +++- docs/080-breaking-changes.rst | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index b32b6e00b..c50b395ae 100644 --- a/Changelog.md +++ b/Changelog.md @@ -24,8 +24,10 @@ Breaking Changes: Language Features: * Super constructors can now be called using the member notation e.g. ``M.C(123)``. +Bugfixes: + * Type Checker: Perform proper integer arithmetic when using constants in array length expressions. - AST Changes: +AST Changes: * New AST Node ``IdentifierPath`` replacing in many places the ``UserDefinedTypeName`` diff --git a/docs/080-breaking-changes.rst b/docs/080-breaking-changes.rst index 0139047fc..e9c206701 100644 --- a/docs/080-breaking-changes.rst +++ b/docs/080-breaking-changes.rst @@ -35,6 +35,10 @@ the compiler notifying you about it. * If a byte array in storage is accessed whose length is encoded incorrectly, a panic is caused. A contract cannot get into this situation unless inline assembly is used to modify the raw representation of storage byte arrays. +* If constants are used in array length expressions, previous versions of Solidity would use arbitrary precision + in all branches of the evaluation tree. Now, if constant variables are used as intermediate expressions, + their values will be properly rounded in the same way as when they are used in run-time expressions. + New Restrictions ================