From 00cb3cfe27ee5881aada0e2e008c9df7e6bd84b9 Mon Sep 17 00:00:00 2001 From: Hernando Castano Date: Wed, 25 Jan 2023 14:45:21 -0800 Subject: [PATCH 1/5] Rename UI test --- .../fail/{message-hygiene-checked.rs => message-hygiene-try.rs} | 0 ...{message-hygiene-checked.stderr => message-hygiene-try.stderr} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename crates/ink/tests/ui/contract/fail/{message-hygiene-checked.rs => message-hygiene-try.rs} (100%) rename crates/ink/tests/ui/contract/fail/{message-hygiene-checked.stderr => message-hygiene-try.stderr} (100%) diff --git a/crates/ink/tests/ui/contract/fail/message-hygiene-checked.rs b/crates/ink/tests/ui/contract/fail/message-hygiene-try.rs similarity index 100% rename from crates/ink/tests/ui/contract/fail/message-hygiene-checked.rs rename to crates/ink/tests/ui/contract/fail/message-hygiene-try.rs diff --git a/crates/ink/tests/ui/contract/fail/message-hygiene-checked.stderr b/crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr similarity index 100% rename from crates/ink/tests/ui/contract/fail/message-hygiene-checked.stderr rename to crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr From eaeb276960490302071dbe397389bfe00fcfa26e Mon Sep 17 00:00:00 2001 From: Hernando Castano Date: Wed, 25 Jan 2023 14:46:24 -0800 Subject: [PATCH 2/5] Change codegen to use `try_` prefix --- .../ink/codegen/src/generator/as_dependency/contract_ref.rs | 6 +++--- crates/ink/ir/src/ir/item_impl/message.rs | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/ink/codegen/src/generator/as_dependency/contract_ref.rs b/crates/ink/codegen/src/generator/as_dependency/contract_ref.rs index 42537d034d9..26ee2f58e57 100644 --- a/crates/ink/codegen/src/generator/as_dependency/contract_ref.rs +++ b/crates/ink/codegen/src/generator/as_dependency/contract_ref.rs @@ -364,7 +364,7 @@ impl ContractRef<'_> { .filter_attr(message.attrs().to_vec()); let storage_ident = self.contract.module().storage().ident(); let message_ident = message.ident(); - let checked_message_ident = message.checked_ident(); + let try_message_ident = message.try_ident(); let call_operator = match message.receiver() { ir::Receiver::Ref => quote! { call }, ir::Receiver::RefMut => quote! { call_mut }, @@ -381,7 +381,7 @@ impl ContractRef<'_> { & #mut_token self #( , #input_bindings : #input_types )* ) #output_type { - self.#checked_message_ident( #( #input_bindings, )* ) + self.#try_message_ident( #( #input_bindings, )* ) .unwrap_or_else(|error| ::core::panic!( "encountered error while calling {}::{}: {:?}", ::core::stringify!(#storage_ident), @@ -392,7 +392,7 @@ impl ContractRef<'_> { #( #attrs )* #[inline] - pub fn #checked_message_ident( + pub fn #try_message_ident( & #mut_token self #( , #input_bindings : #input_types )* ) -> #wrapped_output_type { diff --git a/crates/ink/ir/src/ir/item_impl/message.rs b/crates/ink/ir/src/ir/item_impl/message.rs index f48814b4274..04a3a08afeb 100644 --- a/crates/ink/ir/src/ir/item_impl/message.rs +++ b/crates/ink/ir/src/ir/item_impl/message.rs @@ -317,9 +317,9 @@ impl Message { utils::local_message_id(self.ident()) } - /// Returns the identifier of the message with an additional `_checked` suffix attached. - pub fn checked_ident(&self) -> Ident { - quote::format_ident!("{}_checked", self.ident()) + /// Returns the identifier of the message with an additional `try_` prefix attached. + pub fn try_ident(&self) -> Ident { + quote::format_ident!("try_{}", self.ident()) } } From bd14ee1353332cdee80221e358ee1a21622d2b32 Mon Sep 17 00:00:00 2001 From: Hernando Castano Date: Wed, 25 Jan 2023 14:46:37 -0800 Subject: [PATCH 3/5] Fix tests --- crates/ink/tests/ui/contract/fail/message-hygiene-try.rs | 2 +- .../ink/tests/ui/contract/fail/message-hygiene-try.stderr | 8 ++++---- examples/lang-err-integration-tests/contract-ref/lib.rs | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/ink/tests/ui/contract/fail/message-hygiene-try.rs b/crates/ink/tests/ui/contract/fail/message-hygiene-try.rs index 4f1c844ceb1..749a70efdfc 100644 --- a/crates/ink/tests/ui/contract/fail/message-hygiene-try.rs +++ b/crates/ink/tests/ui/contract/fail/message-hygiene-try.rs @@ -13,7 +13,7 @@ mod contract { pub fn message(&self) {} #[ink(message)] - pub fn message_checked(&self) {} + pub fn try_message(&self) {} } } diff --git a/crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr b/crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr index 8e64a7e9f8c..464f02a9cb9 100644 --- a/crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr +++ b/crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr @@ -1,8 +1,8 @@ -error[E0592]: duplicate definitions with name `message_checked` +error[E0592]: duplicate definitions with name `try_message` --> tests/ui/contract/fail/message-hygiene-checked.rs:16:9 | 1 | #[ink::contract] - | ---------------- other definition for `message_checked` + | ---------------- other definition for `try_message` ... -16 | pub fn message_checked(&self) {} - | ^^^ duplicate definitions for `message_checked` +16 | pub fn try_message(&self) {} + | ^^^ duplicate definitions for `try_message` diff --git a/examples/lang-err-integration-tests/contract-ref/lib.rs b/examples/lang-err-integration-tests/contract-ref/lib.rs index a6dac8aee35..244ba2856e8 100755 --- a/examples/lang-err-integration-tests/contract-ref/lib.rs +++ b/examples/lang-err-integration-tests/contract-ref/lib.rs @@ -48,7 +48,7 @@ mod contract_ref { #[ink(message)] pub fn flip_check(&mut self) { self.flipper - .flip_checked() + .try_flip() .expect("The ink! codegen should've produced a valid call."); } @@ -60,7 +60,7 @@ mod contract_ref { #[ink(message)] pub fn get_check(&mut self) -> bool { self.flipper - .get_checked() + .try_get() .expect("The ink! codegen should've produced a valid call.") } } From 8609ef0b7174cf984de7a3609201271c653c4d80 Mon Sep 17 00:00:00 2001 From: Hernando Castano Date: Wed, 25 Jan 2023 14:51:57 -0800 Subject: [PATCH 4/5] Fix UI test --- crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr b/crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr index 464f02a9cb9..ad3c2b27ac8 100644 --- a/crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr +++ b/crates/ink/tests/ui/contract/fail/message-hygiene-try.stderr @@ -1,5 +1,5 @@ error[E0592]: duplicate definitions with name `try_message` - --> tests/ui/contract/fail/message-hygiene-checked.rs:16:9 + --> tests/ui/contract/fail/message-hygiene-try.rs:16:9 | 1 | #[ink::contract] | ---------------- other definition for `try_message` From c02ee64ab60a2e54b8765ce22e4add1e5d87983b Mon Sep 17 00:00:00 2001 From: Hernando Castano Date: Wed, 25 Jan 2023 15:01:06 -0800 Subject: [PATCH 5/5] Add `CHANGELOG` entry --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff95b1066b1..1e54bc9fd5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +- Rename `_checked` codegen call methods with `try_` ‒ [#1621](https://github.com/paritytech/ink/pull/1621) + +### Breaking Changes + +1. We've renamed some of the generated message methods on the `ContractRef` struct. They + have been changed from `_checked` to `try_` ([#1621](https://github.com/paritytech/ink/pull/1621)) ## Version 4.0.0-beta.1 The coolest feature included in this release is the first first published version of