Releases: dtolnay/syn
Releases · dtolnay/syn
0.11.7
0.11.6
0.11.5
-
Implement an AST folder,
syn::fold::Folder
(#85, thanks @gnzlbg) -
Expose parsers and parser combinators for parsing custom function-like macro input
extern crate syn; #[macro_use] extern crate synom; use syn::Expr; use syn::parse::expr; // An expression surrounded by [[ ... ]]. named!(double_bracket_expr -> Expr, delimited!(punct!("[["), expr, punct!("]]")) ); fn main() { let input = "[[ 1 + 1 ]]"; let parsed = double_bracket_expr(input).expect("double bracket expr"); println!("{:?}", parsed); }
0.11.4
- Add
TyGenerics::as_turbofish()
to turn<X, Y>
into::<X, Y>
- Add
syn::parse_ty_param_bound
0.10.8
0.11.3
0.11.2
0.11.1
0.10.7
0.11.0
AST changes to reflect changes in rustc
- Rename
ExprKind::Vec
toExprKind::Array
- Change the content of
ExprKind::Closure
from aBlock
toExpr
- Support expression values for break statements
- Support attributes on fields in a struct literal expression (
FieldValue
) and pattern (FieldPat
) - Add a new type of
where
predicate -EqPredicate
- Combine
Ty::ObjectSum
andTy::PolyTraitRef
intoTy::TraitObject
- Add
Ty::Mac
to support macros in type position
Other breaking changes
- Remove the custom-derive registry that was used for expanding derives on stable rust; real custom derives will be stable very soon
- Unify
BlockCheckMode
andUnsafety
(#66, thanks @shepmaster)
Non-breaking changes
- Rename
parse_macro_input
toparse_derive_input
andMacroInput
toDeriveInput
now that there are other types of procedural macros that are not derives; the old names will continue to work because they have appeared in so many Macros 1.1 guides (#63, thanks @SimonSapin) - Support parsing macro invocations that use namespaced paths like
a::b!(...)
- The AST walker
syn::visit::Visitor
now supports all AST types (#79, thanks @mystor)