Skip to content

v0.20.0

Compare
Choose a tag to compare
@TedDriggs TedDriggs released this 27 Apr 20:35
· 69 commits to master since this release

v0.20.0 (April 27, 2023)

Breaking Changes

  • Replace all occurrences of syn::NestedMeta with darling::ast::NestedMeta.

  • Replacement for the deprecated AttributeArgs:

// Before

parse_macro_input!(args as AttributeArgs);

// After

match NestedMeta::parse_meta_list(args) {
    Ok(v) => v,
    Err(e) => { 
      return TokenStream::from(Error::from(e).write_errors()); 
    }
};
  • In GenericParamExt, LifetimeDef is now LifetimeParam.
  • In GenericParamExt, as_lifetime_def is renamed to as_lifetime_param.
  • Flag and SpannedValue no longer implement syn::spanned::Spanned.
  • The MSRV (minimum supported Rust version) is now 1.56, because of syn.

Deprecation Warnings

In previous versions of darling, arbitrary expressions were passed in attributes by wrapping them in quotation marks.
v0.20.0 preserves this behavior for syn::Expr, but as a result a field expecting a syn::Expr cannot accept a string literal - it will incorrectly attempt to parse the contents. If this is an issue for you, please add a comment to #229.