From 2f5a9fcc7dccdaa8fdc10fe59ceee73f2c3f294f Mon Sep 17 00:00:00 2001 From: Armani Ferrante Date: Sun, 30 May 2021 13:31:28 -0700 Subject: [PATCH] lang: Change context error span and add constraint docs (#342) --- lang/derive/accounts/src/lib.rs | 3 ++- lang/syn/src/parser/program/mod.rs | 7 +------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/lang/derive/accounts/src/lib.rs b/lang/derive/accounts/src/lib.rs index f7d0b67d..f6f05a56 100644 --- a/lang/derive/accounts/src/lib.rs +++ b/lang/derive/accounts/src/lib.rs @@ -43,7 +43,8 @@ use syn::parse_macro_input; /// | `#[account(belongs_to = )]` | On `ProgramAccount` or `CpiAccount` structs | Checks the `target` field on the account matches the `target` field in the struct deriving `Accounts`. | /// | `#[account(has_one = )]` | On `ProgramAccount` or `CpiAccount` structs | Semantically different, but otherwise the same as `belongs_to`. | /// | `#[account(seeds = [])]` | On `AccountInfo` structs | Seeds for the program derived address an `AccountInfo` struct represents. | -/// | `#[account("")]` | On any type deriving `Accounts` | Executes the given code literal as a constraint. The literal should evaluate to a boolean. | +/// | `#[account(constraint = )]` | On any type deriving `Accounts` | Executes the given code as a constraint. The expression should evaluate to a boolean. | +/// | `#[account("")]` | Deprecated | Executes the given code literal as a constraint. The literal should evaluate to a boolean. | /// | `#[account(rent_exempt = )]` | On `AccountInfo` or `ProgramAccount` structs | Optional attribute to skip the rent exemption check. By default, all accounts marked with `#[account(init)]` will be rent exempt, and so this should rarely (if ever) be used. Similarly, omitting `= skip` will mark the account rent exempt. | /// | `#[account(executable)]` | On `AccountInfo` structs | Checks the given account is an executable program. | /// | `#[account(state = )]` | On `CpiState` structs | Checks the given state is the canonical state account for the target program. | diff --git a/lang/syn/src/parser/program/mod.rs b/lang/syn/src/parser/program/mod.rs index 117e93d9..9ef410ad 100644 --- a/lang/syn/src/parser/program/mod.rs +++ b/lang/syn/src/parser/program/mod.rs @@ -29,12 +29,7 @@ fn ctx_accounts_ident(path_ty: &syn::PatType) -> ParseResult let generic_args = match &segment.arguments { syn::PathArguments::AngleBracketed(args) => args, - _ => { - return Err(ParseError::new( - segment.arguments.span(), - "expected generic arguments here", - )) - } + _ => return Err(ParseError::new(path_ty.span(), "missing accounts context")), }; let generic_ty = generic_args .args