# Attributed expression statement fn call() {} fn run() { #[allow(unused_must_use)] call(); } ==> SourceFile( FunctionItem(fn, BoundIdentifier, ParamList, Block), FunctionItem( fn, BoundIdentifier, ParamList, Block( ExpressionStatement( Attribute(MetaItem(Identifier, ParenthesizedTokens(Identifier))), CallExpression(Identifier, ArgList))))) # Attributed block statement fn run() { #[allow(unused)] { let value = 1; } } ==> SourceFile( FunctionItem( fn, BoundIdentifier, ParamList, Block( ExpressionStatement( Attribute(MetaItem(Identifier, ParenthesizedTokens(Identifier))), Block(LetDeclaration(let, BoundIdentifier, Integer)))))) # Attributed tail expression fn value() -> i32 { #[allow(unused)] 1 } ==> SourceFile( FunctionItem( fn, BoundIdentifier, ParamList, TypeIdentifier, Block( ExpressionStatement( Attribute(MetaItem(Identifier, ParenthesizedTokens(Identifier))), Integer))))