Unverified Commit 9b7b92c1 authored by Michael Müller's avatar Michael Müller Committed by GitHub
Browse files

Enable `spellcheck` CI stage (#822)

* Enable `spellcheck` CI job

* Fix spellchecking mistakes

* Implement review suggestion

* Reword `>= 2`
parent e1486563
Pipeline #142848 passed with stages
in 29 minutes and 17 seconds
...@@ -22,7 +22,7 @@ use quote::{ ...@@ -22,7 +22,7 @@ use quote::{
quote_spanned, quote_spanned,
}; };
/// Generator to create the ink! storage struct and important trait impls. /// Generator to create the ink! storage struct and important trait implementations.
#[derive(From)] #[derive(From)]
pub struct TraitDefinition<'a> { pub struct TraitDefinition<'a> {
trait_def: &'a ir::InkTrait, trait_def: &'a ir::InkTrait,
......
...@@ -36,7 +36,7 @@ pub struct AttributeArgs { ...@@ -36,7 +36,7 @@ pub struct AttributeArgs {
args: Punctuated<MetaNameValue, Token![,]>, args: Punctuated<MetaNameValue, Token![,]>,
} }
/// A name-value pair within an attribute, like feature = "nightly". /// A name-value pair within an attribute, like `feature = "nightly"`.
/// ///
/// The only difference from `syn::MetaNameValue` is that this additionally /// The only difference from `syn::MetaNameValue` is that this additionally
/// allows the `value` to be a plain identifier or path. /// allows the `value` to be a plain identifier or path.
......
...@@ -20,9 +20,9 @@ ...@@ -20,9 +20,9 @@
//! syntax. //! syntax.
//! //!
//! At the time of this writing we currently only use this for the argument //! At the time of this writing we currently only use this for the argument
//! parsing of ink! config header `#[ink(env = my::env::Types, etc...)]` in order //! parsing of ink! configuration header `#[ink(env = my::env::Types, etc...)]`
//! to be able to parse identifiers in `name = value` segments for the `value` //! in order to be able to parse identifiers in `name = value` segments for
//! part. //! the `value` part.
mod attr_args; mod attr_args;
......
...@@ -382,7 +382,7 @@ pub enum AttributeArg { ...@@ -382,7 +382,7 @@ pub enum AttributeArg {
/// This attribute supports a niche case that is rarely needed. /// This attribute supports a niche case that is rarely needed.
/// ///
/// Can be applied on ink! implementation blocks in order to make ink! aware /// Can be applied on ink! implementation blocks in order to make ink! aware
/// of them. This is useful if such an implementation block doesn't contain /// of them. This is useful if such an implementation block does not contain
/// any other ink! attributes, so it would be flagged by ink! as a Rust item. /// any other ink! attributes, so it would be flagged by ink! as a Rust item.
/// Adding `#[ink(impl)]` on such implementation blocks makes them treated /// Adding `#[ink(impl)]` on such implementation blocks makes them treated
/// as ink! implementation blocks thus allowing to access the environment /// as ink! implementation blocks thus allowing to access the environment
...@@ -966,7 +966,7 @@ mod tests { ...@@ -966,7 +966,7 @@ mod tests {
mod test { mod test {
use crate::ir; use crate::ir;
/// Mock for `ir::Attribute` to improve testability. /// Mock for `ir::Attribute` to improve the ability to test.
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, PartialEq, Eq)]
pub enum Attribute { pub enum Attribute {
Ink(Vec<ir::AttributeArg>), Ink(Vec<ir::AttributeArg>),
...@@ -996,7 +996,7 @@ mod tests { ...@@ -996,7 +996,7 @@ mod tests {
} }
} }
/// Mock for `ir::InkAttribute` to improve testability. /// Mock for `ir::InkAttribute` to improve the ability to test.
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, PartialEq, Eq)]
pub struct InkAttribute { pub struct InkAttribute {
args: Vec<ir::AttributeArg>, args: Vec<ir::AttributeArg>,
...@@ -1027,7 +1027,7 @@ mod tests { ...@@ -1027,7 +1027,7 @@ mod tests {
} }
/// Asserts that the given [`syn::Attribute`] is converted into the expected /// Asserts that the given [`syn::Attribute`] is converted into the expected
/// [`ir::Attribute]` or yields the expected error message. /// [`ir::Attribute`] or yields the expected error message.
fn assert_attribute_try_from( fn assert_attribute_try_from(
input: syn::Attribute, input: syn::Attribute,
expected: Result<test::Attribute, &'static str>, expected: Result<test::Attribute, &'static str>,
......
...@@ -230,7 +230,7 @@ impl ChainExtension { ...@@ -230,7 +230,7 @@ impl ChainExtension {
/// - If the input trait is an automatically implemented trait (`auto trait`). /// - If the input trait is an automatically implemented trait (`auto trait`).
/// - If the input trait is generic over some set of types. /// - If the input trait is generic over some set of types.
/// - If the input trait's visibility is not public (`pub`). /// - If the input trait's visibility is not public (`pub`).
/// - If the input trait has supertraits. /// - If the input trait has super-traits.
fn analyse_properties(item_trait: &syn::ItemTrait) -> Result<()> { fn analyse_properties(item_trait: &syn::ItemTrait) -> Result<()> {
if let Some(unsafety) = &item_trait.unsafety { if let Some(unsafety) = &item_trait.unsafety {
return Err(format_err_spanned!( return Err(format_err_spanned!(
...@@ -259,7 +259,7 @@ impl ChainExtension { ...@@ -259,7 +259,7 @@ impl ChainExtension {
if !item_trait.supertraits.is_empty() { if !item_trait.supertraits.is_empty() {
return Err(format_err_spanned!( return Err(format_err_spanned!(
item_trait.supertraits, item_trait.supertraits,
"ink! chain extensions with supertraits are not supported, yet" "ink! chain extensions with super-traits are not supported, yet"
)) ))
} }
Ok(()) Ok(())
...@@ -326,7 +326,7 @@ impl ChainExtension { ...@@ -326,7 +326,7 @@ impl ChainExtension {
/// - associated constants (`const`) /// - associated constants (`const`)
/// - associated types (`type`) /// - associated types (`type`)
/// - macros definitions or usages /// - macros definitions or usages
/// - unknown token sequences (verbatims) /// - unknown token sequences (`Verbatim`'s)
/// - methods with default implementations /// - methods with default implementations
/// - If the trait contains methods which do not respect the ink! trait definition requirements: /// - If the trait contains methods which do not respect the ink! trait definition requirements:
/// - All trait methods must not have a `self` receiver. /// - All trait methods must not have a `self` receiver.
...@@ -569,7 +569,7 @@ mod tests { ...@@ -569,7 +569,7 @@ mod tests {
#[test] #[test]
fn chain_extension_with_supertraits_is_denied() { fn chain_extension_with_supertraits_is_denied() {
assert_ink_chain_extension_eq_err!( assert_ink_chain_extension_eq_err!(
error: "ink! chain extensions with supertraits are not supported, yet", error: "ink! chain extensions with super-traits are not supported, yet",
pub trait MyChainExtension: SuperChainExtension {} pub trait MyChainExtension: SuperChainExtension {}
); );
} }
......
...@@ -40,7 +40,7 @@ pub struct Config { ...@@ -40,7 +40,7 @@ pub struct Config {
env: Option<Environment>, env: Option<Environment>,
} }
/// Return an error to notify about duplicate ink! config arguments. /// Return an error to notify about duplicate ink! configuration arguments.
fn duplicate_config_err<F, S>(fst: F, snd: S, name: &str) -> syn::Error fn duplicate_config_err<F, S>(fst: F, snd: S, name: &str) -> syn::Error
where where
F: Spanned, F: Spanned,
...@@ -79,7 +79,7 @@ impl TryFrom<ast::AttributeArgs> for Config { ...@@ -79,7 +79,7 @@ impl TryFrom<ast::AttributeArgs> for Config {
} else { } else {
return Err(format_err_spanned!( return Err(format_err_spanned!(
arg, arg,
"expected a bool literal for `dynamic_storage_allocator` ink! config argument", "expected a bool literal for `dynamic_storage_allocator` ink! configuration argument",
)) ))
} }
} else if arg.name.is_ident("compile_as_dependency") { } else if arg.name.is_ident("compile_as_dependency") {
...@@ -91,7 +91,7 @@ impl TryFrom<ast::AttributeArgs> for Config { ...@@ -91,7 +91,7 @@ impl TryFrom<ast::AttributeArgs> for Config {
} else { } else {
return Err(format_err_spanned!( return Err(format_err_spanned!(
arg, arg,
"expected a bool literal for `compile_as_dependency` ink! config argument", "expected a bool literal for `compile_as_dependency` ink! configuration argument",
)) ))
} }
} else if arg.name.is_ident("env") { } else if arg.name.is_ident("env") {
...@@ -103,13 +103,13 @@ impl TryFrom<ast::AttributeArgs> for Config { ...@@ -103,13 +103,13 @@ impl TryFrom<ast::AttributeArgs> for Config {
} else { } else {
return Err(format_err_spanned!( return Err(format_err_spanned!(
arg, arg,
"expected a path for `env` ink! config argument", "expected a path for `env` ink! configuration argument",
)) ))
} }
} else { } else {
return Err(format_err_spanned!( return Err(format_err_spanned!(
arg, arg,
"encountered unknown or unsupported ink! config argument", "encountered unknown or unsupported ink! configuration argument",
)) ))
} }
} }
...@@ -206,7 +206,7 @@ mod tests { ...@@ -206,7 +206,7 @@ mod tests {
fn storage_alloc_invalid_value_fails() { fn storage_alloc_invalid_value_fails() {
assert_try_from( assert_try_from(
syn::parse_quote! { dynamic_storage_allocator = "invalid" }, syn::parse_quote! { dynamic_storage_allocator = "invalid" },
Err("expected a bool literal for `dynamic_storage_allocator` ink! config argument"), Err("expected a bool literal for `dynamic_storage_allocator` ink! configuration argument"),
) )
} }
...@@ -229,7 +229,7 @@ mod tests { ...@@ -229,7 +229,7 @@ mod tests {
assert_try_from( assert_try_from(
syn::parse_quote! { compile_as_dependency = "invalid" }, syn::parse_quote! { compile_as_dependency = "invalid" },
Err( Err(
"expected a bool literal for `compile_as_dependency` ink! config argument" "expected a bool literal for `compile_as_dependency` ink! configuration argument"
) )
) )
} }
...@@ -254,7 +254,7 @@ mod tests { ...@@ -254,7 +254,7 @@ mod tests {
fn env_invalid_value_fails() { fn env_invalid_value_fails() {
assert_try_from( assert_try_from(
syn::parse_quote! { env = "invalid" }, syn::parse_quote! { env = "invalid" },
Err("expected a path for `env` ink! config argument"), Err("expected a path for `env` ink! configuration argument"),
); );
} }
...@@ -262,7 +262,7 @@ mod tests { ...@@ -262,7 +262,7 @@ mod tests {
fn unknown_arg_fails() { fn unknown_arg_fails() {
assert_try_from( assert_try_from(
syn::parse_quote! { unknown = argument }, syn::parse_quote! { unknown = argument },
Err("encountered unknown or unsupported ink! config argument"), Err("encountered unknown or unsupported ink! configuration argument"),
); );
} }
......
...@@ -91,7 +91,7 @@ impl TryFrom<syn::Item> for Item { ...@@ -91,7 +91,7 @@ impl TryFrom<syn::Item> for Item {
return Ok(Self::Rust(item_impl.into())) return Ok(Self::Rust(item_impl.into()))
} }
// At this point we know that there must be at least one ink! // At this point we know that there must be at least one ink!
// attribute on either the impl block itself or one of its items. // attribute on either the `impl` block itself or one of its items.
<ir::ItemImpl as TryFrom<_>>::try_from(item_impl) <ir::ItemImpl as TryFrom<_>>::try_from(item_impl)
.map(Into::into) .map(Into::into)
.map(Self::Ink) .map(Self::Ink)
......
...@@ -120,7 +120,7 @@ impl Storage { ...@@ -120,7 +120,7 @@ impl Storage {
&self.ast.ident &self.ast.ident
} }
/// Returns an iter yielding all fields of the storage struct. /// Returns an iterator yielding all fields of the storage struct.
pub fn fields(&self) -> syn::punctuated::Iter<syn::Field> { pub fn fields(&self) -> syn::punctuated::Iter<syn::Field> {
self.ast.fields.iter() self.ast.fields.iter()
} }
......
...@@ -69,7 +69,7 @@ impl<'a, C> CallableWithSelector<'a, C> ...@@ -69,7 +69,7 @@ impl<'a, C> CallableWithSelector<'a, C>
where where
C: Callable, C: Callable,
{ {
/// Creates a new wrapper around the given callable and parent impl block. /// Creates a new wrapper around the given callable and parent `impl` block.
pub(super) fn new(item_impl: &'a ir::ItemImpl, callable: &'a C) -> Self { pub(super) fn new(item_impl: &'a ir::ItemImpl, callable: &'a C) -> Self {
Self { Self {
composed_selector: compose_selector(item_impl, callable), composed_selector: compose_selector(item_impl, callable),
...@@ -80,7 +80,7 @@ where ...@@ -80,7 +80,7 @@ where
} }
impl<'a, C> CallableWithSelector<'a, C> { impl<'a, C> CallableWithSelector<'a, C> {
/// Returns the composed selector of the ink! callable the the impl block. /// Returns the composed selector of the ink! callable the the `impl` block.
pub fn composed_selector(&self) -> ir::Selector { pub fn composed_selector(&self) -> ir::Selector {
self.composed_selector self.composed_selector
} }
...@@ -184,13 +184,13 @@ pub trait Callable { ...@@ -184,13 +184,13 @@ pub trait Callable {
/// Given /// Given
/// - the callable's identifier `i` /// - the callable's identifier `i`
/// - the optionally set callable's selector `s` /// - the optionally set callable's selector `s`
/// - the impl blocks trait path in case it implements a trait, `P` /// - the `impl` blocks trait path in case it implements a trait, `P`
/// - the impl blocks optional user provided namespace `S` /// - 16 kB blocks optional user provided namespace `S`
/// ///
/// Then the selector is composed in the following way: /// Then the selector is composed in the following way:
/// ///
/// - If `s` is given we simply return `s`. /// - If `s` is given we simply return `s`.
/// - Otherwise if `T` is not `None` (trait impl block) we concatenate /// - Otherwise if `T` is not `None` (trait `impl` block) we concatenate
/// `S`, `T` and `i` with `::` as separator if `T` refers to a full-path. /// `S`, `T` and `i` with `::` as separator if `T` refers to a full-path.
/// If `T` refers to a relative path or is just an identifier we only take /// If `T` refers to a relative path or is just an identifier we only take
/// its last segment `p` (e.g. the trait's identifier) into consideration /// its last segment `p` (e.g. the trait's identifier) into consideration
...@@ -293,7 +293,7 @@ pub trait Callable { ...@@ -293,7 +293,7 @@ pub trait Callable {
/// wherever possible; OR import the trait and use only its identifier with /// wherever possible; OR import the trait and use only its identifier with
/// an additional namespace if required to disambiguate selectors. /// an additional namespace if required to disambiguate selectors.
/// - Try not to intermix the above recommendations. /// - Try not to intermix the above recommendations.
/// - Avoid directly setting the selector of an ink! message or constuctor. /// - Avoid directly setting the selector of an ink! message or constructor.
/// Only do this if nothing else helps and you need a very specific selector, /// Only do this if nothing else helps and you need a very specific selector,
/// e.g. in case of backwards compatibility. /// e.g. in case of backwards compatibility.
/// - Do not use the namespace unless required to disambiguate. /// - Do not use the namespace unless required to disambiguate.
...@@ -353,11 +353,11 @@ where ...@@ -353,11 +353,11 @@ where
/// In case any of the common externally callable invariants are not met: /// In case any of the common externally callable invariants are not met:
/// - This is `true` if the externally callable is: /// - This is `true` if the externally callable is:
/// - generic /// - generic
/// - const (compile-time evaluatable) /// - `const` (compile-time evaluable)
/// - async (async WebAssembly smart contract calling is not allowed) /// - `async` (asynchronous WebAssembly smart contract calling is not allowed)
/// - unsafe (caller provided assertions not yet stable) /// - `unsafe` (caller provided assertions not yet stable)
/// - Furthermore this is `true` if the externally callable is defined for a /// - Furthermore this is `true` if the externally callable is defined for a
/// non default ABI (e.g. `extern "C"`) or doesn't have valid visibility. /// non default ABI (e.g. `extern "C"`) or does not have valid visibility.
pub(super) fn ensure_callable_invariants( pub(super) fn ensure_callable_invariants(
method_item: &syn::ImplItemMethod, method_item: &syn::ImplItemMethod,
kind: CallableKind, kind: CallableKind,
......
...@@ -33,7 +33,7 @@ use syn::spanned::Spanned as _; ...@@ -33,7 +33,7 @@ use syn::spanned::Spanned as _;
/// ///
/// # Note /// # Note
/// ///
/// Based on [`syn::ImplItem`] with special variants for ink! impl items. /// Based on [`syn::ImplItem`] with special variants for ink! `impl` items.
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, PartialEq, Eq)]
#[allow(clippy::large_enum_variant)] #[allow(clippy::large_enum_variant)]
pub enum ImplItem { pub enum ImplItem {
...@@ -87,7 +87,7 @@ impl TryFrom<syn::ImplItem> for ImplItem { ...@@ -87,7 +87,7 @@ impl TryFrom<syn::ImplItem> for ImplItem {
} }
} }
other_item => { other_item => {
// This is an error if the impl item contains any unexpected // This is an error if the `impl` item contains any unexpected
// ink! attributes. Otherwise it is a normal Rust item. // ink! attributes. Otherwise it is a normal Rust item.
if ir::contains_ink_attributes(other_item.attrs()) { if ir::contains_ink_attributes(other_item.attrs()) {
let (ink_attrs, _) = let (ink_attrs, _) =
...@@ -108,7 +108,7 @@ impl TryFrom<syn::ImplItem> for ImplItem { ...@@ -108,7 +108,7 @@ impl TryFrom<syn::ImplItem> for ImplItem {
} }
impl ImplItem { impl ImplItem {
/// Returns `true` if the impl block item is an ink! message. /// Returns `true` if the `impl` block item is an ink! message.
pub fn is_message(&self) -> bool { pub fn is_message(&self) -> bool {
self.filter_map_message().is_some() self.filter_map_message().is_some()
} }
...@@ -123,7 +123,7 @@ impl ImplItem { ...@@ -123,7 +123,7 @@ impl ImplItem {
} }
} }
/// Returns `true` if the impl block item is an ink! message. /// Returns `true` if the `impl` block item is an ink! message.
pub fn is_constructor(&self) -> bool { pub fn is_constructor(&self) -> bool {
self.filter_map_constructor().is_some() self.filter_map_constructor().is_some()
} }
...@@ -138,7 +138,7 @@ impl ImplItem { ...@@ -138,7 +138,7 @@ impl ImplItem {
} }
} }
/// Returns `true` if the impl block item is a non ink! specific item. /// Returns `true` if the `impl` block item is a non ink! specific item.
pub fn is_other_item(&self) -> bool { pub fn is_other_item(&self) -> bool {
self.filter_map_other_item().is_some() self.filter_map_other_item().is_some()
} }
......
...@@ -121,7 +121,7 @@ impl ItemImpl { ...@@ -121,7 +121,7 @@ impl ItemImpl {
/// ///
/// This is the case if: /// This is the case if:
/// ///
/// - The ink! implementation block has been annotatated as in: /// - The ink! implementation block has been annotated as in:
/// ///
/// ``` /// ```
/// # use core::convert::TryFrom; /// # use core::convert::TryFrom;
...@@ -218,7 +218,7 @@ impl TryFrom<syn::ItemImpl> for ItemImpl { ...@@ -218,7 +218,7 @@ impl TryFrom<syn::ItemImpl> for ItemImpl {
if !Self::is_ink_impl_block(&item_impl)? { if !Self::is_ink_impl_block(&item_impl)? {
return Err(format_err_spanned!( return Err(format_err_spanned!(
item_impl, item_impl,
"missing ink! annotations on the impl block or on any of its items" "missing ink! annotations on 16 kB block or on any of its items"
)) ))
} }
if let Some(defaultness) = item_impl.defaultness { if let Some(defaultness) = item_impl.defaultness {
...@@ -247,7 +247,7 @@ impl TryFrom<syn::ItemImpl> for ItemImpl { ...@@ -247,7 +247,7 @@ impl TryFrom<syn::ItemImpl> for ItemImpl {
let is_trait_impl = item_impl.trait_.is_some(); let is_trait_impl = item_impl.trait_.is_some();
for impl_item in &impl_items { for impl_item in &impl_items {
/// Ensures that visibility of ink! messages and constructors is /// Ensures that visibility of ink! messages and constructors is
/// valid in dependency of the containing ink! impl block. /// valid in dependency of the containing ink! `impl` block.
/// ///
/// # Note /// # Note
/// ///
...@@ -366,7 +366,7 @@ impl ItemImpl { ...@@ -366,7 +366,7 @@ impl ItemImpl {
IterConstructors::new(self) IterConstructors::new(self)
} }
/// Returns a slice over the shared references of the items of the impl. /// Returns a slice over the shared references of the items of the `impl`.
pub fn items(&self) -> &[ir::ImplItem] { pub fn items(&self) -> &[ir::ImplItem] {
&self.items &self.items
} }
......
...@@ -343,7 +343,7 @@ impl InkTrait { ...@@ -343,7 +343,7 @@ impl InkTrait {
if !item_trait.supertraits.is_empty() { if !item_trait.supertraits.is_empty() {
return Err(format_err_spanned!( return Err(format_err_spanned!(
item_trait.supertraits, item_trait.supertraits,
"ink! trait definitions with supertraits are not supported, yet" "ink! trait definitions with super-traits are not supported, yet"
)) ))
} }
Ok(()) Ok(())
...@@ -357,7 +357,7 @@ impl InkTrait { ...@@ -357,7 +357,7 @@ impl InkTrait {
/// - associated constants (`const`) /// - associated constants (`const`)
/// - associated types (`type`) /// - associated types (`type`)
/// - macros definitions or usages /// - macros definitions or usages
/// - unknown token sequences (verbatims) /// - unknown token sequences (`Verbatim`'s)
/// - methods with default implementations /// - methods with default implementations
/// - If the trait contains methods which do not respect the ink! trait definition requirements: /// - If the trait contains methods which do not respect the ink! trait definition requirements:
/// - All trait methods need to be declared as either `#[ink(message)]` or `#[ink(constructor)]` /// - All trait methods need to be declared as either `#[ink(message)]` or `#[ink(constructor)]`
...@@ -635,7 +635,7 @@ mod tests { ...@@ -635,7 +635,7 @@ mod tests {
#[test] #[test]
fn trait_def_with_supertraits_is_denied() { fn trait_def_with_supertraits_is_denied() {
assert_ink_trait_eq_err!( assert_ink_trait_eq_err!(
error: "ink! trait definitions with supertraits are not supported, yet", error: "ink! trait definitions with super-traits are not supported, yet",
pub trait MyTrait: SuperTrait {} pub trait MyTrait: SuperTrait {}
); );
} }
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
//! //!
//! The ink! IR tries to stay close to the original Rust syntactic structure. //! The ink! IR tries to stay close to the original Rust syntactic structure.
//! All ink! definitions of an ink! smart contract are always defined within //! All ink! definitions of an ink! smart contract are always defined within
//! a so-called Rust inline modlue (`mod my_module { ... items ... }`). //! a so-called Rust inline module (`mod my_module { ... items ... }`).
//! Therefore all ink! definition are found and accessed using the //! Therefore all ink! definition are found and accessed using the
//! [`ItemMod`](`crate::ir::ItemMod`) data structure. //! [`ItemMod`](`crate::ir::ItemMod`) data structure.
......
...@@ -37,7 +37,7 @@ use proc_macro::TokenStream; ...@@ -37,7 +37,7 @@ use proc_macro::TokenStream;
/// ///
/// ink! smart contracts can compile in several different modes. /// ink! smart contracts can compile in several different modes.
/// There are two main compilation models using either /// There are two main compilation models using either
/// - on-chain mode: `no_std` + WebAssembly as target /// - on-chain mode: `no_std` and WebAssembly as target
/// - off-chain mode: `std` /// - off-chain mode: `std`
/// ///
/// We generally use the on-chain mode for actual smart contract deployment /// We generally use the on-chain mode for actual smart contract deployment
...@@ -59,7 +59,7 @@ use proc_macro::TokenStream; ...@@ -59,7 +59,7 @@ use proc_macro::TokenStream;
/// - `false`: Do NOT use the dynamic storage allocator provided by ink!. /// - `false`: Do NOT use the dynamic storage allocator provided by ink!.
/// ///
/// This feature is generally only needed for smart contracts that try to model /// This feature is generally only needed for smart contracts that try to model
/// their data in a way that contains storage entites within other storage /// their data in a way that contains storage entities within other storage
/// entities. /// entities.
/// ///
/// Contract writers should try to write smart contracts that do not depend on the /// Contract writers should try to write smart contracts that do not depend on the
...@@ -189,7 +189,7 @@ use proc_macro::TokenStream; ...@@ -189,7 +189,7 @@ use proc_macro::TokenStream;
/// ///
/// **Default value:** `DefaultEnvironment` defined in `ink_env` crate. /// **Default value:** `DefaultEnvironment` defined in `ink_env` crate.
/// ///
/// ## Anaylsis /// ## Analysis
/// ///
/// The `#[ink::contract]` macro fully analyses its input smart contract /// The `#[ink::contract]` macro fully analyses its input smart contract
/// against invalid arguments and structure. /// against invalid arguments and structure.
...@@ -379,7 +379,7 @@ use proc_macro::TokenStream; ...@@ -379,7 +379,7 @@ use proc_macro::TokenStream;
/// ///
/// ## Interacting with the Contract Executor /// ## Interacting with the Contract Executor
/// ///
/// The `ink_env` crate provides facitilies to interact with the contract executor that /// The `ink_env` crate provides facilities to interact with the contract executor that