var searchIndex = {}; searchIndex["syntex_syntax"] = {"doc":"The Rust parser and macro expander.","items":[[0,"diagnostics","syntex_syntax","",null,null],[0,"plugin","syntex_syntax::diagnostics","",null,null],[3,"ErrorInfo","syntex_syntax::diagnostics::plugin","Error information type.",null,null],[12,"description","","",0,null],[12,"use_site","","",0,null],[5,"expand_diagnostic_used","","",null,null],[5,"expand_register_diagnostic","","",null,null],[5,"expand_build_diagnostic_array","","",null,null],[6,"ErrorMap","","Mapping from error codes to metadata.",null,null],[0,"metadata","syntex_syntax::diagnostics","This module contains utilities for outputting metadata for diagnostic errors.",null,null],[3,"ErrorMetadata","syntex_syntax::diagnostics::metadata","JSON encodable/decodable version of `ErrorInfo`.",null,null],[12,"description","","",1,null],[12,"use_site","","",1,null],[3,"ErrorLocation","","JSON encodable error location type with filename and line number.",null,null],[12,"filename","","",2,null],[12,"line","","",2,null],[5,"get_metadata_dir","","Get the directory where metadata for a given `prefix` should be stored.",null,{"inputs":[{"name":"str"}],"output":{"name":"pathbuf"}}],[5,"output_metadata","","Write metadata for the errors in `err_map` to disk, to a file corresponding to `prefix/name`.",null,{"inputs":[{"name":"extctxt"},{"name":"str"},{"name":"str"},{"name":"errormap"}],"output":{"name":"result"}}],[6,"ErrorMetadataMap","","Mapping from error codes to metadata that can be (de)serialized.",null,null],[11,"encode","","",1,null],[11,"decode","","",1,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"eq","","",1,null],[11,"ne","","",1,null],[11,"encode","","",2,null],[11,"decode","","",2,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"eq","","",2,null],[11,"ne","","",2,null],[11,"from_span","","Create an error location from a span.",2,{"inputs":[{"name":"extctxt"},{"name":"span"}],"output":{"name":"errorlocation"}}],[0,"util","syntex_syntax","",null,null],[3,"ThinVec","syntex_syntax::util","A vector type optimized for cases where this size is usually 0 (c.f. `SmallVector`).\nThe `Option<Box<..>>` wrapping allows us to represent a zero sized vector with `None`,\nwhich uses only a single (null) pointer.",null,null],[0,"interner","","An "interner" is a data structure that associates values with usize tags and\nallows bidirectional lookup; i.e. given a value, one can easily find the\ntype, and vice versa.",null,null],[3,"Interner","syntex_syntax::util::interner","",null,null],[11,"default","","",3,{"inputs":[],"output":{"name":"interner"}}],[11,"new","","",3,{"inputs":[],"output":{"name":"self"}}],[11,"prefill","","",3,null],[11,"intern","","",3,null],[11,"gensym","","",3,null],[11,"gensym_copy","","Create a gensym with the same name as an existing entry.",3,null],[11,"get","","",3,null],[11,"find","","",3,null],[0,"lev_distance","syntex_syntax::util","",null,null],[5,"lev_distance","syntex_syntax::util::lev_distance","To find the Levenshtein distance between two strings",null,{"inputs":[{"name":"str"},{"name":"str"}],"output":{"name":"usize"}}],[5,"find_best_match_for_name","","To find the best match for a given string from an iterator of names\nAs a loose rule to avoid the obviously incorrect suggestions, it takes\nan optional limit for the maximum allowable edit distance, which defaults\nto one-third of the given word",null,{"inputs":[{"name":"t"},{"name":"str"},{"name":"option"}],"output":{"name":"option"}}],[0,"node_count","syntex_syntax::util","",null,null],[3,"NodeCounter","syntex_syntax::util::node_count","",null,null],[12,"count","","",4,null],[11,"new","","",4,{"inputs":[],"output":{"name":"nodecounter"}}],[11,"visit_ident","","",4,null],[11,"visit_mod","","",4,null],[11,"visit_foreign_item","","",4,null],[11,"visit_item","","",4,null],[11,"visit_local","","",4,null],[11,"visit_block","","",4,null],[11,"visit_stmt","","",4,null],[11,"visit_arm","","",4,null],[11,"visit_pat","","",4,null],[11,"visit_expr","","",4,null],[11,"visit_ty","","",4,null],[11,"visit_generics","","",4,null],[11,"visit_fn","","",4,null],[11,"visit_trait_item","","",4,null],[11,"visit_impl_item","","",4,null],[11,"visit_trait_ref","","",4,null],[11,"visit_ty_param_bound","","",4,null],[11,"visit_poly_trait_ref","","",4,null],[11,"visit_variant_data","","",4,null],[11,"visit_struct_field","","",4,null],[11,"visit_enum_def","","",4,null],[11,"visit_variant","","",4,null],[11,"visit_lifetime","","",4,null],[11,"visit_lifetime_def","","",4,null],[11,"visit_mac","","",4,null],[11,"visit_path","","",4,null],[11,"visit_path_list_item","","",4,null],[11,"visit_path_parameters","","",4,null],[11,"visit_assoc_type_binding","","",4,null],[11,"visit_attribute","","",4,null],[11,"visit_macro_def","","",4,null],[0,"parser","syntex_syntax::util","",null,null],[4,"AssocOp","syntex_syntax::util::parser","Associative operator with precedence.",null,null],[13,"Add","","`+`",5,null],[13,"Subtract","","`-`",5,null],[13,"Multiply","","`*`",5,null],[13,"Divide","","`/`",5,null],[13,"Modulus","","`%`",5,null],[13,"LAnd","","`&&`",5,null],[13,"LOr","","`||`",5,null],[13,"BitXor","","`^`",5,null],[13,"BitAnd","","`&`",5,null],[13,"BitOr","","`|`",5,null],[13,"ShiftLeft","","`<<`",5,null],[13,"ShiftRight","","`>>`",5,null],[13,"Equal","","`==`",5,null],[13,"Less","","`<`",5,null],[13,"LessEqual","","`<=`",5,null],[13,"NotEqual","","`!=`",5,null],[13,"Greater","","`>`",5,null],[13,"GreaterEqual","","`>=`",5,null],[13,"Assign","","`=`",5,null],[13,"Inplace","","`<-`",5,null],[13,"AssignOp","","`?=` where ? is one of the BinOpToken",5,null],[13,"As","","`as`",5,null],[13,"DotDot","","`..` range",5,null],[13,"DotDotDot","","`...` range",5,null],[13,"Colon","","`:`",5,null],[4,"Fixity","","",null,null],[13,"Left","","The operator is left-associative",6,null],[13,"Right","","The operator is right-associative",6,null],[13,"None","","The operator is not associative",6,null],[11,"eq","","",5,null],[11,"ne","","",5,null],[11,"fmt","","",5,null],[11,"eq","","",6,null],[11,"fmt","","",6,null],[11,"from_token","","Create a new AssocOP from a token",5,{"inputs":[{"name":"token"}],"output":{"name":"option"}}],[11,"from_ast_binop","","Create a new AssocOp from ast::BinOpKind.",5,{"inputs":[{"name":"binopkind"}],"output":{"name":"self"}}],[11,"precedence","","Gets the precedence of this operator",5,null],[11,"fixity","","Gets the fixity of this operator",5,null],[11,"is_comparison","","",5,null],[11,"is_assign_like","","",5,null],[11,"to_ast_binop","","",5,null],[0,"small_vector","syntex_syntax::util","",null,null],[3,"SmallVector","syntex_syntax::util::small_vector","A vector type optimized for cases where the size is almost always 0 or 1",null,null],[3,"IntoIter","","",null,null],[11,"into","","",7,null],[11,"from_iter","","",7,{"inputs":[{"name":"i"}],"output":{"name":"smallvector"}}],[11,"extend","","",7,null],[11,"zero","","",7,{"inputs":[],"output":{"name":"smallvector"}}],[11,"one","","",7,{"inputs":[{"name":"t"}],"output":{"name":"smallvector"}}],[11,"many","","",7,{"inputs":[{"name":"vec"}],"output":{"name":"smallvector"}}],[11,"as_slice","","",7,null],[11,"pop","","",7,null],[11,"push","","",7,null],[11,"push_all","","",7,null],[11,"get","","",7,null],[11,"expect_one","","",7,null],[11,"len","","",7,null],[11,"is_empty","","",7,null],[11,"map","","",7,null],[11,"into_iter","","",7,null],[11,"next","","",8,null],[11,"size_hint","","",8,null],[11,"move_flat_map","","",7,null],[0,"move_map","syntex_syntax::util","",null,null],[8,"MoveMap","syntex_syntax::util::move_map","",null,null],[11,"move_map","","",9,null],[10,"move_flat_map","","",9,null],[11,"fmt","syntex_syntax::util","",10,null],[11,"hash","","",10,null],[11,"decode","","",10,{"inputs":[{"name":"__dt"}],"output":{"name":"result"}}],[11,"encode","","",10,null],[11,"eq","","",10,null],[11,"ne","","",10,null],[11,"clone","","",10,null],[11,"new","","",10,{"inputs":[],"output":{"name":"self"}}],[11,"from","","",10,{"inputs":[{"name":"vec"}],"output":{"name":"self"}}],[11,"into","","",10,null],[11,"deref","","",10,null],[11,"extend","","",10,null],[0,"json","syntex_syntax","A JSON emitter for errors.",null,null],[3,"JsonEmitter","syntex_syntax::json","",null,null],[11,"basic","","",11,{"inputs":[],"output":{"name":"jsonemitter"}}],[11,"stderr","","",11,{"inputs":[{"name":"option"},{"name":"rc"}],"output":{"name":"jsonemitter"}}],[11,"emit","","",11,null],[0,"syntax","syntex_syntax","",null,null],[0,"abi","","",null,null],[3,"AbiData","syntex_syntax::abi","",null,null],[4,"Os","","",null,null],[13,"Windows","","",12,null],[13,"Macos","","",12,null],[13,"Linux","","",12,null],[13,"Android","","",12,null],[13,"Freebsd","","",12,null],[13,"iOS","","",12,null],[13,"Dragonfly","","",12,null],[13,"Bitrig","","",12,null],[13,"Netbsd","","",12,null],[13,"Openbsd","","",12,null],[13,"NaCl","","",12,null],[13,"Solaris","","",12,null],[4,"Abi","","",null,null],[13,"Cdecl","","",13,null],[13,"Stdcall","","",13,null],[13,"Fastcall","","",13,null],[13,"Vectorcall","","",13,null],[13,"Aapcs","","",13,null],[13,"Win64","","",13,null],[13,"Rust","","",13,null],[13,"C","","",13,null],[13,"System","","",13,null],[13,"RustIntrinsic","","",13,null],[13,"RustCall","","",13,null],[13,"PlatformIntrinsic","","",13,null],[4,"Architecture","","",null,null],[13,"X86","","",14,null],[13,"X86_64","","",14,null],[13,"Arm","","",14,null],[13,"Mips","","",14,null],[13,"Mipsel","","",14,null],[4,"AbiArchitecture","","",null,null],[13,"Rust","","Not a real ABI (e.g., intrinsic)",15,null],[13,"All","","An ABI that specifies cross-platform defaults (e.g., "C")",15,null],[13,"Archs","","Multiple architectures (bitset)",15,null],[5,"lookup","","Returns the ABI with the given name (if any).",null,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[5,"all_names","","",null,{"inputs":[],"output":{"name":"vec"}}],[11,"fmt","","",12,null],[11,"eq","","",12,null],[11,"clone","","",12,null],[11,"fmt","","",13,null],[11,"clone","","",13,null],[11,"decode","","",13,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",13,null],[11,"hash","","",13,null],[11,"eq","","",13,null],[11,"fmt","","",14,null],[11,"eq","","",14,null],[11,"clone","","",14,null],[11,"clone","","",16,null],[11,"clone","","",15,null],[11,"index","","",13,null],[11,"data","","",13,null],[11,"name","","",13,null],[11,"fmt","","",13,null],[11,"fmt","","",12,null],[0,"ast","syntex_syntax","",null,null],[3,"ThinVec","syntex_syntax::ast","A vector type optimized for cases where this size is usually 0 (c.f. `SmallVector`).\nThe `Option<Box<..>>` wrapping allows us to represent a zero sized vector with `None`,\nwhich uses only a single (null) pointer.",null,null],[3,"Name","","A name is a part of an identifier, representing a string or gensym. It's\nthe result of interning.",null,null],[12,"0","","",17,null],[3,"Ident","","An identifier contains a Name (index into the interner\ntable) and a SyntaxContext to track renaming and\nmacro expansion per Flatt et al., "Macros That Work Together"",null,null],[12,"name","","",18,null],[12,"ctxt","","",18,null],[3,"Lifetime","","",null,null],[12,"id","","",19,null],[12,"span","","",19,null],[12,"name","","",19,null],[3,"LifetimeDef","","A lifetime definition, e.g. `'a: 'b+'c+'d`",null,null],[12,"lifetime","","",20,null],[12,"bounds","","",20,null],[3,"Path","","A "Path" is essentially Rust's notion of a name.",null,null],[12,"span","","",21,null],[12,"global","","A `::foo` path, is relative to the crate root rather than current\nmodule (like paths in an import).",21,null],[12,"segments","","The segments in the path: the things separated by `::`.",21,null],[3,"PathSegment","","A segment of a path: an identifier, an optional lifetime, and a set of types.",null,null],[12,"identifier","","The identifier portion of this path segment.",22,null],[12,"parameters","","Type/lifetime parameters attached to this path. They come in\ntwo flavors: `Path<A,B,C>` and `Path(A,B) -> C`. Note that\nthis is more than just simple syntactic sugar; the use of\nparens affects the region binding rules, so we preserve the\ndistinction.",22,null],[3,"AngleBracketedParameterData","","A path like `Foo<'a, T>`",null,null],[12,"lifetimes","","The lifetime parameters for this path segment.",23,null],[12,"types","","The type parameters for this path segment, if present.",23,null],[12,"bindings","","Bindings (equality constraints) on associated types, if present.",23,null],[3,"ParenthesizedParameterData","","A path like `Foo(A,B) -> C`",null,null],[12,"span","","Overall span",24,null],[12,"inputs","","`(A,B)`",24,null],[12,"output","","`C`",24,null],[3,"TyParam","","",null,null],[12,"ident","","",25,null],[12,"id","","",25,null],[12,"bounds","","",25,null],[12,"default","","",25,null],[12,"span","","",25,null],[3,"Generics","","Represents lifetimes and type parameters attached to a declaration\nof a function, enum, trait, etc.",null,null],[12,"lifetimes","","",26,null],[12,"ty_params","","",26,null],[12,"where_clause","","",26,null],[3,"WhereClause","","A `where` clause in a definition",null,null],[12,"id","","",27,null],[12,"predicates","","",27,null],[3,"WhereBoundPredicate","","A type bound.",null,null],[12,"span","","",28,null],[12,"bound_lifetimes","","Any lifetimes from a `for` binding",28,null],[12,"bounded_ty","","The type being bounded",28,null],[12,"bounds","","Trait and lifetime bounds (`Clone+Send+'static`)",28,null],[3,"WhereRegionPredicate","","A lifetime predicate.",null,null],[12,"span","","",29,null],[12,"lifetime","","",29,null],[12,"bounds","","",29,null],[3,"WhereEqPredicate","","An equality predicate (unsupported).",null,null],[12,"id","","",30,null],[12,"span","","",30,null],[12,"path","","",30,null],[12,"ty","","",30,null],[3,"Crate","","",null,null],[12,"module","","",31,null],[12,"attrs","","",31,null],[12,"config","","",31,null],[12,"span","","",31,null],[12,"exported_macros","","",31,null],[3,"Block","","A Block (`{ .. }`).",null,null],[12,"stmts","","Statements in a block",32,null],[12,"id","","",32,null],[12,"rules","","Distinguishes between `unsafe { ... }` and `{ ... }`",32,null],[12,"span","","",32,null],[3,"Pat","","",null,null],[12,"id","","",33,null],[12,"node","","",33,null],[12,"span","","",33,null],[3,"FieldPat","","A single field in a struct pattern",null,null],[12,"ident","","The identifier for the field",34,null],[12,"pat","","The pattern the field is destructured to",34,null],[12,"is_shorthand","","",34,null],[3,"Stmt","","A statement",null,null],[12,"id","","",35,null],[12,"node","","",35,null],[12,"span","","",35,null],[3,"Local","","Local represents a `let` statement, e.g., `let <pat>:<ty> = <expr>;`",null,null],[12,"pat","","",36,null],[12,"ty","","",36,null],[12,"init","","Initializer expression to set the value, if any",36,null],[12,"id","","",36,null],[12,"span","","",36,null],[12,"attrs","","",36,null],[3,"Arm","","An arm of a 'match'.",null,null],[12,"attrs","","",37,null],[12,"pats","","",37,null],[12,"guard","","",37,null],[12,"body","","",37,null],[3,"Field","","",null,null],[12,"ident","","",38,null],[12,"expr","","",38,null],[12,"span","","",38,null],[3,"Expr","","An expression",null,null],[12,"id","","",39,null],[12,"node","","",39,null],[12,"span","","",39,null],[12,"attrs","","",39,null],[3,"QSelf","","The explicit Self type in a "qualified path". The actual\npath, including the trait and the associated item, is stored\nseparately. `position` represents the index of the associated\nitem qualified with this Self type.",null,null],[12,"ty","","",40,null],[12,"position","","",40,null],[3,"Mac_","","Represents a macro invocation. The Path indicates which macro\nis being invoked, and the vector of token-trees contains the source\nof the macro invocation.",null,null],[12,"path","","",41,null],[12,"tts","","",41,null],[3,"MutTy","","",null,null],[12,"ty","","",42,null],[12,"mutbl","","",42,null],[3,"MethodSig","","Represents a method's signature in a trait declaration,\nor in an implementation.",null,null],[12,"unsafety","","",43,null],[12,"constness","","",43,null],[12,"abi","","",43,null],[12,"decl","","",43,null],[12,"generics","","",43,null],[3,"TraitItem","","Represents an item declaration within a trait declaration,\npossibly including a default implementation. A trait item is\neither required (meaning it doesn't have an implementation, just a\nsignature) or provided (meaning it has a default implementation).",null,null],[12,"id","","",44,null],[12,"ident","","",44,null],[12,"attrs","","",44,null],[12,"node","","",44,null],[12,"span","","",44,null],[3,"ImplItem","","",null,null],[12,"id","","",45,null],[12,"ident","","",45,null],[12,"vis","","",45,null],[12,"defaultness","","",45,null],[12,"attrs","","",45,null],[12,"node","","",45,null],[12,"span","","",45,null],[3,"TypeBinding","","",null,null],[12,"id","","",46,null],[12,"ident","","",46,null],[12,"ty","","",46,null],[12,"span","","",46,null],[3,"Ty","","",null,null],[12,"id","","",47,null],[12,"node","","",47,null],[12,"span","","",47,null],[3,"BareFnTy","","",null,null],[12,"unsafety","","",48,null],[12,"abi","","",48,null],[12,"lifetimes","","",48,null],[12,"decl","","",48,null],[3,"InlineAsmOutput","","Inline assembly.",null,null],[12,"constraint","","",49,null],[12,"expr","","",49,null],[12,"is_rw","","",49,null],[12,"is_indirect","","",49,null],[3,"InlineAsm","","Inline assembly.",null,null],[12,"asm","","",50,null],[12,"asm_str_style","","",50,null],[12,"outputs","","",50,null],[12,"inputs","","",50,null],[12,"clobbers","","",50,null],[12,"volatile","","",50,null],[12,"alignstack","","",50,null],[12,"dialect","","",50,null],[12,"expn_id","","",50,null],[3,"Arg","","An argument in a function header.",null,null],[12,"ty","","",51,null],[12,"pat","","",51,null],[12,"id","","",51,null],[3,"FnDecl","","Header (not the body) of a function declaration.",null,null],[12,"inputs","","",52,null],[12,"output","","",52,null],[12,"variadic","","",52,null],[3,"Mod","","Module declaration.",null,null],[12,"inner","","A span from the first token past `{` to the last token until `}`.\nFor `mod foo;`, the inner span ranges from the first token\nto the last token in the external file.",53,null],[12,"items","","",53,null],[3,"ForeignMod","","Foreign module declaration.",null,null],[12,"abi","","",54,null],[12,"items","","",54,null],[3,"EnumDef","","",null,null],[12,"variants","","",55,null],[3,"Variant_","","",null,null],[12,"name","","",56,null],[12,"attrs","","",56,null],[12,"data","","",56,null],[12,"disr_expr","","Explicit discriminant, e.g. `Foo = 1`",56,null],[3,"AttrId","","",null,null],[12,"0","","",57,null],[3,"Attribute_","","Doc-comments are promoted to attributes that have is_sugared_doc = true",null,null],[12,"id","","",58,null],[12,"style","","",58,null],[12,"value","","",58,null],[12,"is_sugared_doc","","",58,null],[3,"TraitRef","","TraitRef's appear in impls.",null,null],[12,"path","","",59,null],[12,"ref_id","","",59,null],[3,"PolyTraitRef","","",null,null],[12,"bound_lifetimes","","The `'a` in `<'a> Foo<&'a T>`",60,null],[12,"trait_ref","","The `Foo<&'a T>` in `<'a> Foo<&'a T>`",60,null],[12,"span","","",60,null],[3,"StructField","","Field of a struct.",null,null],[12,"span","","",61,null],[12,"ident","","",61,null],[12,"vis","","",61,null],[12,"id","","",61,null],[12,"ty","","",61,null],[12,"attrs","","",61,null],[3,"Item","","An item",null,null],[12,"ident","","",62,null],[12,"attrs","","",62,null],[12,"id","","",62,null],[12,"node","","",62,null],[12,"vis","","",62,null],[12,"span","","",62,null],[3,"ForeignItem","","",null,null],[12,"ident","","",63,null],[12,"attrs","","",63,null],[12,"node","","",63,null],[12,"id","","",63,null],[12,"span","","",63,null],[12,"vis","","",63,null],[3,"MacroDef","","A macro definition, in this crate or imported from another.",null,null],[12,"ident","","",64,null],[12,"attrs","","",64,null],[12,"id","","",64,null],[12,"span","","",64,null],[12,"imported_from","","",64,null],[12,"export","","",64,null],[12,"use_locally","","",64,null],[12,"allow_internal_unstable","","",64,null],[12,"body","","",64,null],[4,"PathParameters","","Parameters of a path segment.",null,null],[13,"AngleBracketed","","The `<'a, A,B,C>` in `foo::bar::baz::<'a, A,B,C>`",65,null],[13,"Parenthesized","","The `(A,B)` and `C` in `Foo(A,B) -> C`",65,null],[4,"TyParamBound","","The AST represents all type param bounds as types.\ntypeck::collect::compute_bounds matches these against\nthe "special" built-in traits (see middle::lang_items) and\ndetects Copy, Send and Sync.",null,null],[13,"TraitTyParamBound","","",66,null],[13,"RegionTyParamBound","","",66,null],[4,"TraitBoundModifier","","A modifier on a bound, currently this is only used for `?Sized`, where the\nmodifier is `Maybe`. Negative bounds should also be handled here.",null,null],[13,"None","","",67,null],[13,"Maybe","","",67,null],[4,"WherePredicate","","A single predicate in a `where` clause",null,null],[13,"BoundPredicate","","A type binding, e.g. `for<'c> Foo: Send+Clone+'c`",68,null],[13,"RegionPredicate","","A lifetime predicate, e.g. `'a: 'b+'c`",68,null],[13,"EqPredicate","","An equality predicate (unsupported)",68,null],[4,"MetaItemKind","","A compile-time attribute item.",null,null],[13,"Word","","Word meta item.",69,null],[13,"List","","List meta item.",69,null],[13,"NameValue","","Name value meta item.",69,null],[4,"BindingMode","","",null,null],[13,"ByRef","","",70,null],[13,"ByValue","","",70,null],[4,"PatKind","","",null,null],[13,"Wild","","Represents a wildcard pattern (`_`)",71,null],[13,"Ident","","A `PatKind::Ident` may either be a new bound variable (`ref mut binding @ OPT_SUBPATTERN`),\nor a unit struct/variant pattern, or a const pattern (in the last two cases the third\nfield must be `None`). Disambiguation cannot be done with parser alone, so it happens\nduring name resolution.",71,null],[13,"Struct","","A struct or struct variant pattern, e.g. `Variant {x, y, ..}`.\nThe `bool` is `true` in the presence of a `..`.",71,null],[13,"TupleStruct","","A tuple struct/variant pattern `Variant(x, y, .., z)`.\nIf the `..` pattern fragment is present, then `Option<usize>` denotes its position.\n0 <= position <= subpats.len()",71,null],[13,"Path","","A possibly qualified path pattern.\nUnquailfied path patterns `A::B::C` can legally refer to variants, structs, constants\nor associated constants. Quailfied path patterns `<A>::B::C`/`<A as Trait>::B::C` can\nonly legally refer to associated constants.",71,null],[13,"Tuple","","A tuple pattern `(a, b)`.\nIf the `..` pattern fragment is present, then `Option<usize>` denotes its position.\n0 <= position <= subpats.len()",71,null],[13,"Box","","A `box` pattern",71,null],[13,"Ref","","A reference pattern, e.g. `&mut (a, b)`",71,null],[13,"Lit","","A literal",71,null],[13,"Range","","A range pattern, e.g. `1...2`",71,null],[13,"Vec","","`[a, b, ..i, y, z]` is represented as:\n`PatKind::Vec(box [a, b], Some(i), box [y, z])`",71,null],[13,"Mac","","A macro pattern; pre-expansion",71,null],[4,"Mutability","","",null,null],[13,"Mutable","","",72,null],[13,"Immutable","","",72,null],[4,"BinOpKind","","",null,null],[13,"Add","","The `+` operator (addition)",73,null],[13,"Sub","","The `-` operator (subtraction)",73,null],[13,"Mul","","The `*` operator (multiplication)",73,null],[13,"Div","","The `/` operator (division)",73,null],[13,"Rem","","The `%` operator (modulus)",73,null],[13,"And","","The `&&` operator (logical and)",73,null],[13,"Or","","The `||` operator (logical or)",73,null],[13,"BitXor","","The `^` operator (bitwise xor)",73,null],[13,"BitAnd","","The `&` operator (bitwise and)",73,null],[13,"BitOr","","The `|` operator (bitwise or)",73,null],[13,"Shl","","The `<<` operator (shift left)",73,null],[13,"Shr","","The `>>` operator (shift right)",73,null],[13,"Eq","","The `==` operator (equality)",73,null],[13,"Lt","","The `<` operator (less than)",73,null],[13,"Le","","The `<=` operator (less than or equal to)",73,null],[13,"Ne","","The `!=` operator (not equal to)",73,null],[13,"Ge","","The `>=` operator (greater than or equal to)",73,null],[13,"Gt","","The `>` operator (greater than)",73,null],[4,"UnOp","","",null,null],[13,"Deref","","The `*` operator for dereferencing",74,null],[13,"Not","","The `!` operator for logical inversion",74,null],[13,"Neg","","The `-` operator for negation",74,null],[4,"StmtKind","","",null,null],[13,"Local","","A local (let) binding.",75,null],[13,"Item","","An item definition.",75,null],[13,"Expr","","Expr without trailing semi-colon.",75,null],[13,"Semi","","",75,null],[13,"Mac","","",75,null],[4,"MacStmtStyle","","",null,null],[13,"Semicolon","","The macro statement had a trailing semicolon, e.g. `foo! { ... };`\n`foo!(...);`, `foo![...];`",76,null],[13,"Braces","","The macro statement had braces; e.g. foo! { ... }",76,null],[13,"NoBraces","","The macro statement had parentheses or brackets and no semicolon; e.g.\n`foo!(...)`. All of these will end up being converted into macro\nexpressions.",76,null],[4,"BlockCheckMode","","",null,null],[13,"Default","","",77,null],[13,"Unsafe","","",77,null],[4,"UnsafeSource","","",null,null],[13,"CompilerGenerated","","",78,null],[13,"UserProvided","","",78,null],[4,"RangeLimits","","Limit types of a range (inclusive or exclusive)",null,null],[13,"HalfOpen","","Inclusive at the beginning, exclusive at the end",79,null],[13,"Closed","","Inclusive at the beginning and end",79,null],[4,"ExprKind","","",null,null],[13,"Box","","A `box x` expression.",80,null],[13,"InPlace","","First expr is the place; second expr is the value.",80,null],[13,"Vec","","An array (`[a, b, c, d]`)",80,null],[13,"Call","","A function call",80,null],[13,"MethodCall","","A method call (`x.foo::<Bar, Baz>(a, b, c, d)`)",80,null],[13,"Tup","","A tuple (`(a, b, c ,d)`)",80,null],[13,"Binary","","A binary operation (For example: `a + b`, `a * b`)",80,null],[13,"Unary","","A unary operation (For example: `!x`, `*x`)",80,null],[13,"Lit","","A literal (For example: `1`, `"foo"`)",80,null],[13,"Cast","","A cast (`foo as f64`)",80,null],[13,"Type","","",80,null],[13,"If","","An `if` block, with an optional else block",80,null],[13,"IfLet","","An `if let` expression with an optional else block",80,null],[13,"While","","A while loop, with an optional label",80,null],[13,"WhileLet","","A while-let loop, with an optional label",80,null],[13,"ForLoop","","A for loop, with an optional label",80,null],[13,"Loop","","Conditionless loop (can be exited with break, continue, or return)",80,null],[13,"Match","","A `match` block.",80,null],[13,"Closure","","A closure (for example, `move |a, b, c| {a + b + c}`)",80,null],[13,"Block","","A block (`{ ... }`)",80,null],[13,"Assign","","An assignment (`a = foo()`)",80,null],[13,"AssignOp","","An assignment with an operator",80,null],[13,"Field","","Access of a named struct field (`obj.foo`)",80,null],[13,"TupField","","Access of an unnamed field of a struct or tuple-struct",80,null],[13,"Index","","An indexing operation (`foo[2]`)",80,null],[13,"Range","","A range (`1..2`, `1..`, `..2`, `1...2`, `1...`, `...2`)",80,null],[13,"Path","","Variable reference, possibly containing `::` and/or type\nparameters, e.g. foo::bar::<baz>.",80,null],[13,"AddrOf","","A referencing operation (`&a` or `&mut a`)",80,null],[13,"Break","","A `break`, with an optional label to break",80,null],[13,"Continue","","A `continue`, with an optional label",80,null],[13,"Ret","","A `return`, with an optional value to be returned",80,null],[13,"InlineAsm","","Output of the `asm!()` macro",80,null],[13,"Mac","","A macro invocation; pre-expansion",80,null],[13,"Struct","","A struct literal expression.",80,null],[13,"Repeat","","An array literal constructed from one repeated element.",80,null],[13,"Paren","","No-op: used solely so we can pretty-print faithfully",80,null],[13,"Try","","`expr?`",80,null],[4,"CaptureBy","","A capture clause",null,null],[13,"Value","","",81,null],[13,"Ref","","",81,null],[4,"StrStyle","","",null,null],[13,"Cooked","","A regular string, like `"foo"`",82,null],[13,"Raw","","A raw string, like `r##"foo"##`",82,null],[4,"LitIntType","","",null,null],[13,"Signed","","",83,null],[13,"Unsigned","","",83,null],[13,"Unsuffixed","","",83,null],[4,"LitKind","","Literal kind.",null,null],[13,"Str","","A string literal (`"foo"`)",84,null],[13,"ByteStr","","A byte string (`b"foo"`)",84,null],[13,"Byte","","A byte char (`b'f'`)",84,null],[13,"Char","","A character literal (`'a'`)",84,null],[13,"Int","","An integer literal (`1`)",84,null],[13,"Float","","A float literal (`1f64` or `1E10f64`)",84,null],[13,"FloatUnsuffixed","","A float literal without a suffix (`1.0 or 1.0E10`)",84,null],[13,"Bool","","A boolean literal",84,null],[4,"TraitItemKind","","",null,null],[13,"Const","","",85,null],[13,"Method","","",85,null],[13,"Type","","",85,null],[13,"Macro","","",85,null],[4,"ImplItemKind","","",null,null],[13,"Const","","",86,null],[13,"Method","","",86,null],[13,"Type","","",86,null],[13,"Macro","","",86,null],[4,"IntTy","","",null,null],[13,"Is","","",87,null],[13,"I8","","",87,null],[13,"I16","","",87,null],[13,"I32","","",87,null],[13,"I64","","",87,null],[4,"UintTy","","",null,null],[13,"Us","","",88,null],[13,"U8","","",88,null],[13,"U16","","",88,null],[13,"U32","","",88,null],[13,"U64","","",88,null],[4,"FloatTy","","",null,null],[13,"F32","","",89,null],[13,"F64","","",89,null],[4,"TyKind","","The different kinds of types recognized by the compiler",null,null],[13,"Vec","","A variable-length array (`[T]`)",90,null],[13,"FixedLengthVec","","A fixed length array (`[T; n]`)",90,null],[13,"Ptr","","A raw pointer (`*const T` or `*mut T`)",90,null],[13,"Rptr","","A reference (`&'a T` or `&'a mut T`)",90,null],[13,"BareFn","","A bare function (e.g. `fn(usize) -> bool`)",90,null],[13,"Never","","The never type (`!`)",90,null],[13,"Tup","","A tuple (`(A, B, C, D,...)`)",90,null],[13,"Path","","A path (`module::module::...::Type`), optionally\n"qualified", e.g. `<Vec<T> as SomeTrait>::SomeType`.",90,null],[13,"ObjectSum","","Something like `A+B`. Note that `B` must always be a path.",90,null],[13,"PolyTraitRef","","A type like `for<'a> Foo<&'a Bar>`",90,null],[13,"ImplTrait","","An `impl TraitA+TraitB` type.",90,null],[13,"Paren","","No-op; kept solely so that we can pretty-print faithfully",90,null],[13,"Typeof","","Unused for now",90,null],[13,"Infer","","TyKind::Infer means the type should be inferred instead of it having been\nspecified. This can appear anywhere in a type.",90,null],[13,"ImplicitSelf","","Inferred type of a `self` or `&self` argument in a method.",90,null],[13,"Mac","","",90,null],[4,"AsmDialect","","Inline assembly dialect.",null,null],[13,"Att","","",91,null],[13,"Intel","","",91,null],[4,"SelfKind","","Alternative representation for `Arg`s describing `self` parameter of methods.",null,null],[13,"Value","","`self`, `mut self`",92,null],[13,"Region","","`&'lt self`, `&'lt mut self`",92,null],[13,"Explicit","","`self: TYPE`, `mut self: TYPE`",92,null],[4,"Unsafety","","",null,null],[13,"Unsafe","","",93,null],[13,"Normal","","",93,null],[4,"Constness","","",null,null],[13,"Const","","",94,null],[13,"NotConst","","",94,null],[4,"Defaultness","","",null,null],[13,"Default","","",95,null],[13,"Final","","",95,null],[4,"ImplPolarity","","",null,null],[13,"Positive","","`impl Trait for Type`",96,null],[13,"Negative","","`impl !Trait for Type`",96,null],[4,"FunctionRetTy","","",null,null],[13,"Default","","Return type is not specified.",97,null],[13,"Ty","","Everything else",97,null],[4,"PathListItemKind","","",null,null],[13,"Ident","","",98,null],[12,"name","syntex_syntax::ast::PathListItemKind","",98,null],[12,"rename","","renamed in list, e.g. `use foo::{bar as baz};`",98,null],[12,"id","","",98,null],[13,"Mod","syntex_syntax::ast","",98,null],[12,"rename","syntex_syntax::ast::PathListItemKind","renamed in list, e.g. `use foo::{self as baz};`",98,null],[12,"id","","",98,null],[4,"ViewPath_","syntex_syntax::ast","",null,null],[13,"ViewPathSimple","","`foo::bar::baz as quux`",99,null],[13,"ViewPathGlob","","`foo::bar::*`",99,null],[13,"ViewPathList","","`foo::bar::{a,b,c}`",99,null],[4,"AttrStyle","","Distinguishes between Attributes that decorate items and Attributes that\nare contained as statements within items. These two cases need to be\ndistinguished for pretty-printing.",null,null],[13,"Outer","","",100,null],[13,"Inner","","",100,null],[4,"Visibility","","",null,null],[13,"Public","","",101,null],[13,"Crate","","",101,null],[13,"Restricted","","",101,null],[12,"path","syntex_syntax::ast::Visibility","",101,null],[12,"id","","",101,null],[13,"Inherited","syntex_syntax::ast","",101,null],[4,"VariantData","","Fields and Ids of enum variants and structs",null,null],[13,"Struct","","Struct variant.",102,null],[13,"Tuple","","Tuple variant.",102,null],[13,"Unit","","Unit variant.",102,null],[4,"ItemKind","","",null,null],[13,"ExternCrate","","An`extern crate` item, with optional original crate name.",103,null],[13,"Use","","A use declaration (`use` or `pub use`) item.",103,null],[13,"Static","","A static item (`static` or `pub static`).",103,null],[13,"Const","","A constant item (`const` or `pub const`).",103,null],[13,"Fn","","A function declaration (`fn` or `pub fn`).",103,null],[13,"Mod","","A module declaration (`mod` or `pub mod`).",103,null],[13,"ForeignMod","","An external module (`extern` or `pub extern`).",103,null],[13,"Ty","","A type alias (`type` or `pub type`).",103,null],[13,"Enum","","An enum definition (`enum` or `pub enum`).",103,null],[13,"Struct","","A struct definition (`struct` or `pub struct`).",103,null],[13,"Trait","","A Trait declaration (`trait` or `pub trait`).",103,null],[13,"DefaultImpl","","",103,null],[13,"Impl","","An implementation.",103,null],[13,"Mac","","A macro invocation (which includes macro definition).",103,null],[4,"ForeignItemKind","","An item within an `extern` block",null,null],[13,"Fn","","A foreign function",104,null],[13,"Static","","A foreign static item (`static ext: u8`), with optional mutability\n(the boolean is true when mutable)",104,null],[6,"CrateNum","","",null,null],[6,"NodeId","","",null,null],[6,"TyParamBounds","","",null,null],[6,"CrateConfig","","The set of MetaItems that define the compilation environment of the crate,\nused to drive conditional compilation",null,null],[6,"MetaItem","","A spanned compile-time attribute item.",null,null],[6,"BinOp","","",null,null],[6,"SpannedIdent","","",null,null],[6,"Mac","","",null,null],[6,"Lit","","A literal",null,null],[6,"ExplicitSelf","","",null,null],[6,"Variant","","",null,null],[6,"PathListItem","","",null,null],[6,"ViewPath","","",null,null],[6,"Attribute","","Meta-data associated with an item",null,null],[17,"CRATE_NODE_ID","","Node id used to represent the root of the crate.",null,null],[17,"DUMMY_NODE_ID","","When parsing and doing expansions, we initially give all AST nodes this AST\nnode value. Then later, in the renumber pass, we renumber them to have\nsmall, positive ids.",null,null],[11,"hash","","",17,null],[11,"cmp","","",17,null],[11,"partial_cmp","","",17,null],[11,"lt","","",17,null],[11,"le","","",17,null],[11,"gt","","",17,null],[11,"ge","","",17,null],[11,"eq","","",17,null],[11,"ne","","",17,null],[11,"clone","","",17,null],[11,"hash","","",18,null],[11,"eq","","",18,null],[11,"ne","","",18,null],[11,"clone","","",18,null],[11,"as_str","","",17,null],[11,"fmt","","",17,null],[11,"fmt","","",17,null],[11,"encode","","",17,null],[11,"decode","","",17,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"with_empty_ctxt","","",18,{"inputs":[{"name":"name"}],"output":{"name":"ident"}}],[11,"fmt","","",18,null],[11,"fmt","","",18,null],[11,"encode","","",18,null],[11,"decode","","",18,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"hash","","",19,null],[11,"decode","","",19,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",19,null],[11,"eq","","",19,null],[11,"ne","","",19,null],[11,"clone","","",19,null],[11,"fmt","","",19,null],[11,"fmt","","",20,null],[11,"hash","","",20,null],[11,"decode","","",20,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",20,null],[11,"eq","","",20,null],[11,"ne","","",20,null],[11,"clone","","",20,null],[11,"hash","","",21,null],[11,"decode","","",21,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",21,null],[11,"eq","","",21,null],[11,"ne","","",21,null],[11,"clone","","",21,null],[11,"fmt","","",21,null],[11,"fmt","","",21,null],[11,"from_ident","","",21,{"inputs":[{"name":"span"},{"name":"ident"}],"output":{"name":"path"}}],[11,"fmt","","",22,null],[11,"hash","","",22,null],[11,"decode","","",22,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",22,null],[11,"eq","","",22,null],[11,"ne","","",22,null],[11,"clone","","",22,null],[11,"fmt","","",65,null],[11,"hash","","",65,null],[11,"decode","","",65,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",65,null],[11,"eq","","",65,null],[11,"ne","","",65,null],[11,"clone","","",65,null],[11,"none","","",65,{"inputs":[],"output":{"name":"pathparameters"}}],[11,"is_empty","","",65,null],[11,"has_lifetimes","","",65,null],[11,"has_types","","",65,null],[11,"types","","Returns the types that the user wrote. Note that these do not necessarily map to the type\nparameters in the parenthesized case.",65,null],[11,"lifetimes","","",65,null],[11,"bindings","","",65,null],[11,"fmt","","",23,null],[11,"hash","","",23,null],[11,"decode","","",23,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",23,null],[11,"eq","","",23,null],[11,"ne","","",23,null],[11,"clone","","",23,null],[11,"fmt","","",24,null],[11,"hash","","",24,null],[11,"decode","","",24,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",24,null],[11,"eq","","",24,null],[11,"ne","","",24,null],[11,"clone","","",24,null],[11,"fmt","","",66,null],[11,"hash","","",66,null],[11,"decode","","",66,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",66,null],[11,"eq","","",66,null],[11,"ne","","",66,null],[11,"clone","","",66,null],[11,"fmt","","",67,null],[11,"hash","","",67,null],[11,"decode","","",67,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",67,null],[11,"eq","","",67,null],[11,"clone","","",67,null],[11,"fmt","","",25,null],[11,"hash","","",25,null],[11,"decode","","",25,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",25,null],[11,"eq","","",25,null],[11,"ne","","",25,null],[11,"clone","","",25,null],[11,"fmt","","",26,null],[11,"hash","","",26,null],[11,"decode","","",26,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",26,null],[11,"eq","","",26,null],[11,"ne","","",26,null],[11,"clone","","",26,null],[11,"is_lt_parameterized","","",26,null],[11,"is_type_parameterized","","",26,null],[11,"is_parameterized","","",26,null],[11,"default","","",26,{"inputs":[],"output":{"name":"generics"}}],[11,"fmt","","",27,null],[11,"hash","","",27,null],[11,"decode","","",27,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",27,null],[11,"eq","","",27,null],[11,"ne","","",27,null],[11,"clone","","",27,null],[11,"fmt","","",68,null],[11,"hash","","",68,null],[11,"decode","","",68,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",68,null],[11,"eq","","",68,null],[11,"ne","","",68,null],[11,"clone","","",68,null],[11,"fmt","","",28,null],[11,"hash","","",28,null],[11,"decode","","",28,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",28,null],[11,"eq","","",28,null],[11,"ne","","",28,null],[11,"clone","","",28,null],[11,"fmt","","",29,null],[11,"hash","","",29,null],[11,"decode","","",29,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",29,null],[11,"eq","","",29,null],[11,"ne","","",29,null],[11,"clone","","",29,null],[11,"fmt","","",30,null],[11,"hash","","",30,null],[11,"decode","","",30,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",30,null],[11,"eq","","",30,null],[11,"ne","","",30,null],[11,"clone","","",30,null],[11,"fmt","","",31,null],[11,"hash","","",31,null],[11,"decode","","",31,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",31,null],[11,"eq","","",31,null],[11,"ne","","",31,null],[11,"clone","","",31,null],[11,"fmt","","",69,null],[11,"hash","","",69,null],[11,"decode","","",69,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",69,null],[11,"clone","","",69,null],[11,"eq","","",69,null],[11,"fmt","","",32,null],[11,"hash","","",32,null],[11,"decode","","",32,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",32,null],[11,"eq","","",32,null],[11,"ne","","",32,null],[11,"clone","","",32,null],[11,"hash","","",33,null],[11,"decode","","",33,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",33,null],[11,"eq","","",33,null],[11,"ne","","",33,null],[11,"clone","","",33,null],[11,"fmt","","",33,null],[11,"walk","","",33,null],[11,"fmt","","",34,null],[11,"hash","","",34,null],[11,"decode","","",34,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",34,null],[11,"eq","","",34,null],[11,"ne","","",34,null],[11,"clone","","",34,null],[11,"fmt","","",70,null],[11,"hash","","",70,null],[11,"decode","","",70,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",70,null],[11,"eq","","",70,null],[11,"ne","","",70,null],[11,"clone","","",70,null],[11,"fmt","","",71,null],[11,"hash","","",71,null],[11,"decode","","",71,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",71,null],[11,"eq","","",71,null],[11,"ne","","",71,null],[11,"clone","","",71,null],[11,"fmt","","",72,null],[11,"hash","","",72,null],[11,"decode","","",72,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",72,null],[11,"eq","","",72,null],[11,"clone","","",72,null],[11,"fmt","","",73,null],[11,"hash","","",73,null],[11,"decode","","",73,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",73,null],[11,"eq","","",73,null],[11,"clone","","",73,null],[11,"to_string","","",73,null],[11,"lazy","","",73,null],[11,"is_shift","","",73,null],[11,"is_comparison","","",73,null],[11,"is_by_value","","Returns `true` if the binary operator takes its arguments by value",73,null],[11,"fmt","","",74,null],[11,"hash","","",74,null],[11,"decode","","",74,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",74,null],[11,"eq","","",74,null],[11,"clone","","",74,null],[11,"is_by_value","","Returns `true` if the unary operator takes its argument by value",74,{"inputs":[{"name":"unop"}],"output":{"name":"bool"}}],[11,"to_string","","",74,{"inputs":[{"name":"unop"}],"output":{"name":"str"}}],[11,"hash","","",35,null],[11,"decode","","",35,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",35,null],[11,"eq","","",35,null],[11,"ne","","",35,null],[11,"clone","","",35,null],[11,"add_trailing_semicolon","","",35,null],[11,"fmt","","",35,null],[11,"hash","","",75,null],[11,"decode","","",75,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",75,null],[11,"eq","","",75,null],[11,"ne","","",75,null],[11,"clone","","",75,null],[11,"fmt","","",76,null],[11,"hash","","",76,null],[11,"decode","","",76,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",76,null],[11,"eq","","",76,null],[11,"clone","","",76,null],[11,"fmt","","",36,null],[11,"hash","","",36,null],[11,"decode","","",36,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",36,null],[11,"eq","","",36,null],[11,"ne","","",36,null],[11,"clone","","",36,null],[11,"fmt","","",37,null],[11,"hash","","",37,null],[11,"decode","","",37,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",37,null],[11,"eq","","",37,null],[11,"ne","","",37,null],[11,"clone","","",37,null],[11,"fmt","","",38,null],[11,"hash","","",38,null],[11,"decode","","",38,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",38,null],[11,"eq","","",38,null],[11,"ne","","",38,null],[11,"clone","","",38,null],[11,"fmt","","",77,null],[11,"hash","","",77,null],[11,"decode","","",77,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",77,null],[11,"eq","","",77,null],[11,"ne","","",77,null],[11,"clone","","",77,null],[11,"fmt","","",78,null],[11,"hash","","",78,null],[11,"decode","","",78,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",78,null],[11,"eq","","",78,null],[11,"clone","","",78,null],[11,"hash","","",39,null],[11,"decode","","",39,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",39,null],[11,"eq","","",39,null],[11,"ne","","",39,null],[11,"clone","","",39,null],[11,"fmt","","",39,null],[11,"fmt","","",79,null],[11,"hash","","",79,null],[11,"decode","","",79,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",79,null],[11,"eq","","",79,null],[11,"clone","","",79,null],[11,"fmt","","",80,null],[11,"hash","","",80,null],[11,"decode","","",80,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",80,null],[11,"eq","","",80,null],[11,"ne","","",80,null],[11,"clone","","",80,null],[11,"fmt","","",40,null],[11,"hash","","",40,null],[11,"decode","","",40,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",40,null],[11,"eq","","",40,null],[11,"ne","","",40,null],[11,"clone","","",40,null],[11,"fmt","","",81,null],[11,"hash","","",81,null],[11,"decode","","",81,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",81,null],[11,"eq","","",81,null],[11,"clone","","",81,null],[11,"fmt","","",41,null],[11,"hash","","",41,null],[11,"decode","","",41,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",41,null],[11,"eq","","",41,null],[11,"ne","","",41,null],[11,"clone","","",41,null],[11,"fmt","","",82,null],[11,"hash","","",82,null],[11,"decode","","",82,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",82,null],[11,"eq","","",82,null],[11,"ne","","",82,null],[11,"clone","","",82,null],[11,"fmt","","",83,null],[11,"hash","","",83,null],[11,"decode","","",83,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",83,null],[11,"eq","","",83,null],[11,"ne","","",83,null],[11,"clone","","",83,null],[11,"fmt","","",84,null],[11,"hash","","",84,null],[11,"decode","","",84,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",84,null],[11,"eq","","",84,null],[11,"ne","","",84,null],[11,"clone","","",84,null],[11,"is_str","","Returns true if this literal is a string and false otherwise.",84,null],[11,"fmt","","",42,null],[11,"hash","","",42,null],[11,"decode","","",42,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",42,null],[11,"eq","","",42,null],[11,"ne","","",42,null],[11,"clone","","",42,null],[11,"fmt","","",43,null],[11,"hash","","",43,null],[11,"decode","","",43,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",43,null],[11,"eq","","",43,null],[11,"ne","","",43,null],[11,"clone","","",43,null],[11,"fmt","","",44,null],[11,"hash","","",44,null],[11,"decode","","",44,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",44,null],[11,"eq","","",44,null],[11,"ne","","",44,null],[11,"clone","","",44,null],[11,"fmt","","",85,null],[11,"hash","","",85,null],[11,"decode","","",85,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",85,null],[11,"eq","","",85,null],[11,"ne","","",85,null],[11,"clone","","",85,null],[11,"fmt","","",45,null],[11,"hash","","",45,null],[11,"decode","","",45,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",45,null],[11,"eq","","",45,null],[11,"ne","","",45,null],[11,"clone","","",45,null],[11,"fmt","","",86,null],[11,"hash","","",86,null],[11,"decode","","",86,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",86,null],[11,"eq","","",86,null],[11,"ne","","",86,null],[11,"clone","","",86,null],[11,"hash","","",87,null],[11,"decode","","",87,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",87,null],[11,"eq","","",87,null],[11,"clone","","",87,null],[11,"fmt","","",87,null],[11,"fmt","","",87,null],[11,"ty_to_string","","",87,null],[11,"val_to_string","","",87,null],[11,"ty_max","","",87,null],[11,"bit_width","","",87,null],[11,"hash","","",88,null],[11,"decode","","",88,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",88,null],[11,"eq","","",88,null],[11,"clone","","",88,null],[11,"ty_to_string","","",88,null],[11,"val_to_string","","",88,null],[11,"ty_max","","",88,null],[11,"bit_width","","",88,null],[11,"fmt","","",88,null],[11,"fmt","","",88,null],[11,"hash","","",89,null],[11,"decode","","",89,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",89,null],[11,"eq","","",89,null],[11,"clone","","",89,null],[11,"fmt","","",89,null],[11,"fmt","","",89,null],[11,"ty_to_string","","",89,null],[11,"bit_width","","",89,null],[11,"fmt","","",46,null],[11,"hash","","",46,null],[11,"decode","","",46,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",46,null],[11,"eq","","",46,null],[11,"ne","","",46,null],[11,"clone","","",46,null],[11,"hash","","",47,null],[11,"decode","","",47,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",47,null],[11,"eq","","",47,null],[11,"ne","","",47,null],[11,"clone","","",47,null],[11,"fmt","","",47,null],[11,"fmt","","",48,null],[11,"hash","","",48,null],[11,"decode","","",48,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",48,null],[11,"eq","","",48,null],[11,"ne","","",48,null],[11,"clone","","",48,null],[11,"fmt","","",90,null],[11,"hash","","",90,null],[11,"decode","","",90,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",90,null],[11,"eq","","",90,null],[11,"ne","","",90,null],[11,"clone","","",90,null],[11,"fmt","","",91,null],[11,"hash","","",91,null],[11,"decode","","",91,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",91,null],[11,"eq","","",91,null],[11,"clone","","",91,null],[11,"fmt","","",49,null],[11,"hash","","",49,null],[11,"decode","","",49,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",49,null],[11,"eq","","",49,null],[11,"ne","","",49,null],[11,"clone","","",49,null],[11,"fmt","","",50,null],[11,"hash","","",50,null],[11,"decode","","",50,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",50,null],[11,"eq","","",50,null],[11,"ne","","",50,null],[11,"clone","","",50,null],[11,"fmt","","",51,null],[11,"hash","","",51,null],[11,"decode","","",51,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",51,null],[11,"eq","","",51,null],[11,"ne","","",51,null],[11,"clone","","",51,null],[11,"fmt","","",92,null],[11,"hash","","",92,null],[11,"decode","","",92,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",92,null],[11,"eq","","",92,null],[11,"ne","","",92,null],[11,"clone","","",92,null],[11,"to_self","","",51,null],[11,"is_self","","",51,null],[11,"from_self","","",51,{"inputs":[{"name":"explicitself"},{"name":"spannedident"}],"output":{"name":"arg"}}],[11,"fmt","","",52,null],[11,"hash","","",52,null],[11,"decode","","",52,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",52,null],[11,"eq","","",52,null],[11,"ne","","",52,null],[11,"clone","","",52,null],[11,"get_self","","",52,null],[11,"has_self","","",52,null],[11,"fmt","","",93,null],[11,"hash","","",93,null],[11,"decode","","",93,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",93,null],[11,"eq","","",93,null],[11,"clone","","",93,null],[11,"fmt","","",94,null],[11,"hash","","",94,null],[11,"decode","","",94,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",94,null],[11,"eq","","",94,null],[11,"clone","","",94,null],[11,"fmt","","",95,null],[11,"hash","","",95,null],[11,"decode","","",95,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",95,null],[11,"eq","","",95,null],[11,"clone","","",95,null],[11,"fmt","","",93,null],[11,"hash","","",96,null],[11,"decode","","",96,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",96,null],[11,"eq","","",96,null],[11,"clone","","",96,null],[11,"fmt","","",96,null],[11,"fmt","","",97,null],[11,"hash","","",97,null],[11,"decode","","",97,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",97,null],[11,"eq","","",97,null],[11,"ne","","",97,null],[11,"clone","","",97,null],[11,"span","","",97,null],[11,"fmt","","",53,null],[11,"hash","","",53,null],[11,"decode","","",53,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",53,null],[11,"eq","","",53,null],[11,"ne","","",53,null],[11,"clone","","",53,null],[11,"fmt","","",54,null],[11,"hash","","",54,null],[11,"decode","","",54,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",54,null],[11,"eq","","",54,null],[11,"ne","","",54,null],[11,"clone","","",54,null],[11,"fmt","","",55,null],[11,"hash","","",55,null],[11,"decode","","",55,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",55,null],[11,"eq","","",55,null],[11,"ne","","",55,null],[11,"clone","","",55,null],[11,"fmt","","",56,null],[11,"hash","","",56,null],[11,"decode","","",56,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",56,null],[11,"eq","","",56,null],[11,"ne","","",56,null],[11,"clone","","",56,null],[11,"fmt","","",98,null],[11,"hash","","",98,null],[11,"decode","","",98,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",98,null],[11,"eq","","",98,null],[11,"ne","","",98,null],[11,"clone","","",98,null],[11,"id","","",98,null],[11,"name","","",98,null],[11,"rename","","",98,null],[11,"fmt","","",99,null],[11,"hash","","",99,null],[11,"decode","","",99,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",99,null],[11,"eq","","",99,null],[11,"ne","","",99,null],[11,"clone","","",99,null],[11,"path","","",99,null],[11,"fmt","","",100,null],[11,"hash","","",100,null],[11,"decode","","",100,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",100,null],[11,"eq","","",100,null],[11,"clone","","",100,null],[11,"fmt","","",57,null],[11,"hash","","",57,null],[11,"decode","","",57,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",57,null],[11,"eq","","",57,null],[11,"ne","","",57,null],[11,"clone","","",57,null],[11,"fmt","","",58,null],[11,"hash","","",58,null],[11,"decode","","",58,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",58,null],[11,"eq","","",58,null],[11,"ne","","",58,null],[11,"clone","","",58,null],[11,"fmt","","",59,null],[11,"hash","","",59,null],[11,"decode","","",59,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",59,null],[11,"eq","","",59,null],[11,"ne","","",59,null],[11,"clone","","",59,null],[11,"fmt","","",60,null],[11,"hash","","",60,null],[11,"decode","","",60,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",60,null],[11,"eq","","",60,null],[11,"ne","","",60,null],[11,"clone","","",60,null],[11,"fmt","","",101,null],[11,"hash","","",101,null],[11,"decode","","",101,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",101,null],[11,"eq","","",101,null],[11,"ne","","",101,null],[11,"clone","","",101,null],[11,"fmt","","",61,null],[11,"hash","","",61,null],[11,"decode","","",61,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",61,null],[11,"eq","","",61,null],[11,"ne","","",61,null],[11,"clone","","",61,null],[11,"fmt","","",102,null],[11,"hash","","",102,null],[11,"decode","","",102,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",102,null],[11,"eq","","",102,null],[11,"ne","","",102,null],[11,"clone","","",102,null],[11,"fields","","",102,null],[11,"id","","",102,null],[11,"is_struct","","",102,null],[11,"is_tuple","","",102,null],[11,"is_unit","","",102,null],[11,"fmt","","",62,null],[11,"hash","","",62,null],[11,"decode","","",62,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",62,null],[11,"eq","","",62,null],[11,"ne","","",62,null],[11,"clone","","",62,null],[11,"fmt","","",103,null],[11,"hash","","",103,null],[11,"decode","","",103,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",103,null],[11,"eq","","",103,null],[11,"ne","","",103,null],[11,"clone","","",103,null],[11,"descriptive_variant","","",103,null],[11,"fmt","","",63,null],[11,"hash","","",63,null],[11,"decode","","",63,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",63,null],[11,"eq","","",63,null],[11,"ne","","",63,null],[11,"clone","","",63,null],[11,"fmt","","",104,null],[11,"hash","","",104,null],[11,"decode","","",104,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",104,null],[11,"eq","","",104,null],[11,"ne","","",104,null],[11,"clone","","",104,null],[11,"descriptive_variant","","",104,null],[11,"fmt","","",64,null],[11,"hash","","",64,null],[11,"decode","","",64,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",64,null],[11,"eq","","",64,null],[11,"ne","","",64,null],[11,"clone","","",64,null],[0,"attr","syntex_syntax","",null,null],[3,"Stability","syntex_syntax::attr","Represents the #[stable], #[unstable] and #[rustc_deprecated] attributes.",null,null],[12,"level","","",105,null],[12,"feature","","",105,null],[12,"rustc_depr","","",105,null],[3,"RustcDeprecation","","",null,null],[12,"since","","",106,null],[12,"reason","","",106,null],[3,"Deprecation","","",null,null],[12,"since","","",107,null],[12,"note","","",107,null],[4,"InlineAttr","","",null,null],[13,"None","","",108,null],[13,"Hint","","",108,null],[13,"Always","","",108,null],[13,"Never","","",108,null],[4,"StabilityLevel","","The available stability levels.",null,null],[13,"Unstable","","",109,null],[12,"reason","syntex_syntax::attr::StabilityLevel","",109,null],[12,"issue","","",109,null],[13,"Stable","syntex_syntax::attr","",109,null],[12,"since","syntex_syntax::attr::StabilityLevel","",109,null],[4,"ReprAttr","syntex_syntax::attr","",null,null],[13,"ReprAny","","",110,null],[13,"ReprInt","","",110,null],[13,"ReprExtern","","",110,null],[13,"ReprPacked","","",110,null],[13,"ReprSimd","","",110,null],[4,"IntType","","",null,null],[13,"SignedInt","","",111,null],[13,"UnsignedInt","","",111,null],[5,"mark_used","","",null,{"inputs":[{"name":"attribute"}],"output":null}],[5,"is_used","","",null,{"inputs":[{"name":"attribute"}],"output":{"name":"bool"}}],[5,"mk_name_value_item_str","","",null,{"inputs":[{"name":"internedstring"},{"name":"internedstring"}],"output":{"name":"p"}}],[5,"mk_name_value_item","","",null,{"inputs":[{"name":"internedstring"},{"name":"lit"}],"output":{"name":"p"}}],[5,"mk_list_item","","",null,{"inputs":[{"name":"internedstring"},{"name":"vec"}],"output":{"name":"p"}}],[5,"mk_word_item","","",null,{"inputs":[{"name":"internedstring"}],"output":{"name":"p"}}],[5,"mk_spanned_name_value_item","","",null,{"inputs":[{"name":"span"},{"name":"internedstring"},{"name":"lit"}],"output":{"name":"p"}}],[5,"mk_spanned_list_item","","",null,{"inputs":[{"name":"span"},{"name":"internedstring"},{"name":"vec"}],"output":{"name":"p"}}],[5,"mk_spanned_word_item","","",null,{"inputs":[{"name":"span"},{"name":"internedstring"}],"output":{"name":"p"}}],[5,"mk_attr_id","","",null,{"inputs":[],"output":{"name":"attrid"}}],[5,"mk_attr_inner","","Returns an inner attribute with the given value.",null,{"inputs":[{"name":"attrid"},{"name":"p"}],"output":{"name":"attribute"}}],[5,"mk_spanned_attr_inner","","Returns an innter attribute with the given value and span.",null,{"inputs":[{"name":"span"},{"name":"attrid"},{"name":"p"}],"output":{"name":"attribute"}}],[5,"mk_attr_outer","","Returns an outer attribute with the given value.",null,{"inputs":[{"name":"attrid"},{"name":"p"}],"output":{"name":"attribute"}}],[5,"mk_spanned_attr_outer","","Returns an outer attribute with the given value and span.",null,{"inputs":[{"name":"span"},{"name":"attrid"},{"name":"p"}],"output":{"name":"attribute"}}],[5,"mk_doc_attr_outer","","",null,{"inputs":[{"name":"attrid"},{"name":"p"},{"name":"bool"}],"output":{"name":"attribute"}}],[5,"mk_sugared_doc_attr","","",null,{"inputs":[{"name":"attrid"},{"name":"internedstring"},{"name":"bytepos"},{"name":"bytepos"}],"output":{"name":"attribute"}}],[5,"contains","","Check if `needle` occurs in `haystack` by a structural\ncomparison. This is slightly subtle, and relies on ignoring the\nspan included in the `==` comparison a plain MetaItem.",null,null],[5,"contains_name","","",null,null],[5,"first_attr_value_str_by_name","","",null,null],[5,"last_meta_item_value_str_by_name","","",null,null],[5,"sort_meta_items","","",null,{"inputs":[{"name":"vec"}],"output":{"name":"vec"}}],[5,"find_crate_name","","",null,null],[5,"find_export_name_attr","","Find the value of #[export_name=*] attribute and check its validity.",null,null],[5,"contains_extern_indicator","","",null,null],[5,"find_inline_attr","","Determine what `#[inline]` attribute is present in `attrs`, if any.",null,null],[5,"requests_inline","","True if `#[inline]` or `#[inline(always)]` is present in `attrs`.",null,null],[5,"cfg_matches","","Tests if a cfg-pattern matches the cfg set",null,null],[5,"find_stability","","Find the first stability attribute. `None` if none exists.",null,null],[5,"find_deprecation","","Find the deprecation attribute. `None` if none exists.",null,null],[5,"require_unique_names","","",null,null],[5,"find_repr_attrs","","Parse #[repr(...)] forms.",null,{"inputs":[{"name":"handler"},{"name":"attribute"}],"output":{"name":"vec"}}],[8,"AttrMetaMethods","","",null,null],[11,"check_name","","",112,null],[10,"name","","Retrieve the name of the meta item, e.g. `foo` in `#[foo]`,\n`#[foo="bar"]` and `#[foo(bar)]`",112,null],[10,"value_str","","Gets the string value if self is a MetaItemKind::NameValue variant\ncontaining a string, otherwise None.",112,null],[10,"meta_item_list","","Gets a list of inner meta items from a list MetaItem type.",112,null],[10,"is_word","","Indicates if the attribute is a Word.",112,null],[11,"is_value_str","","Indicates if the attribute is a Value String.",112,null],[11,"is_meta_item_list","","Indicates if the attribute is a Meta-Item List.",112,null],[10,"span","","",112,null],[8,"AttributeMethods","","",null,null],[10,"meta","","",113,null],[10,"with_desugared_doc","","",113,null],[8,"HasAttrs","","",null,null],[10,"attrs","","",114,null],[10,"map_attrs","","",114,null],[11,"check_name","","",115,null],[11,"name","","",115,null],[11,"value_str","","",115,null],[11,"meta_item_list","","",115,null],[11,"is_word","","",115,null],[11,"span","","",115,null],[11,"name","","",116,null],[11,"value_str","","",116,null],[11,"meta_item_list","","",116,null],[11,"is_word","","",116,null],[11,"span","","",116,null],[11,"meta","","Extract the MetaItem from inside this Attribute.",115,null],[11,"with_desugared_doc","","Convert self to a normal #[doc="foo"] comment, if it is a\ncomment like `///` or `/** */`. (Returns self unchanged for\nnon-sugared doc attributes.)",115,null],[11,"eq","","",108,null],[11,"clone","","",108,null],[11,"hash","","",105,null],[11,"eq","","",105,null],[11,"ne","","",105,null],[11,"fmt","","",105,null],[11,"clone","","",105,null],[11,"decode","","",105,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",105,null],[11,"hash","","",109,null],[11,"fmt","","",109,null],[11,"clone","","",109,null],[11,"partial_cmp","","",109,null],[11,"lt","","",109,null],[11,"le","","",109,null],[11,"gt","","",109,null],[11,"ge","","",109,null],[11,"eq","","",109,null],[11,"ne","","",109,null],[11,"decode","","",109,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",109,null],[11,"hash","","",106,null],[11,"fmt","","",106,null],[11,"clone","","",106,null],[11,"partial_cmp","","",106,null],[11,"lt","","",106,null],[11,"le","","",106,null],[11,"gt","","",106,null],[11,"ge","","",106,null],[11,"eq","","",106,null],[11,"ne","","",106,null],[11,"decode","","",106,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",106,null],[11,"hash","","",107,null],[11,"fmt","","",107,null],[11,"clone","","",107,null],[11,"partial_cmp","","",107,null],[11,"lt","","",107,null],[11,"le","","",107,null],[11,"gt","","",107,null],[11,"ge","","",107,null],[11,"eq","","",107,null],[11,"ne","","",107,null],[11,"decode","","",107,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",107,null],[11,"is_unstable","","",109,null],[11,"is_stable","","",109,null],[11,"clone","","",110,null],[11,"decode","","",110,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",110,null],[11,"fmt","","",110,null],[11,"eq","","",110,null],[11,"ne","","",110,null],[11,"is_ffi_safe","","",110,null],[11,"clone","","",111,null],[11,"decode","","",111,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",111,null],[11,"fmt","","",111,null],[11,"eq","","",111,null],[11,"ne","","",111,null],[11,"hash","","",111,null],[11,"is_signed","","",111,null],[11,"attrs","syntex_syntax::util","",10,null],[11,"map_attrs","","",10,null],[11,"attrs","syntex_syntax::ast","",75,null],[11,"map_attrs","","",75,null],[11,"attrs","","",62,null],[11,"map_attrs","","",62,null],[11,"attrs","","",39,null],[11,"map_attrs","","",39,null],[11,"attrs","","",36,null],[11,"map_attrs","","",36,null],[11,"attrs","","",63,null],[11,"map_attrs","","",63,null],[11,"attrs","","",61,null],[11,"map_attrs","","",61,null],[11,"attrs","","",45,null],[11,"map_attrs","","",45,null],[11,"attrs","","",44,null],[11,"map_attrs","","",44,null],[11,"attrs","","",37,null],[11,"map_attrs","","",37,null],[11,"attrs","","",35,null],[11,"map_attrs","","",35,null],[11,"attrs","syntex_syntax::attr","",117,null],[11,"map_attrs","","",117,null],[0,"codemap","syntex_syntax","The CodeMap tracks all the source code used within a single crate, mapping\nfrom integer byte positions to the original source code location. Each bit\nof source parsed during crate parsing (typically files, in-memory strings,\nor various bits of macro expansion) cover a continuous range of bytes in the\nCodeMap and are represented by FileMaps. Byte positions are stored in\n`spans` and used pervasively in the compiler. They are absolute positions\nwithin the CodeMap, which upon request can be converted to line and column\ninformation, source code snippets, etc.",null,null],[3,"Spanned","syntex_syntax::codemap","",null,null],[12,"node","","",118,null],[12,"span","","",118,null],[3,"NameAndSpan","","",null,null],[12,"format","","The format with which the macro was invoked.",119,null],[12,"allow_internal_unstable","","Whether the macro is allowed to use #[unstable]/feature-gated\nfeatures internally without forcing the whole crate to opt-in\nto them.",119,null],[12,"span","","The span of the macro definition itself. The macro may not\nhave a sensible definition span (e.g. something defined\ncompletely inside libsyntax) in which case this is None.",119,null],[3,"ExpnInfo","","Extra information for tracking spans of macro and syntax sugar expansion",null,null],[12,"call_site","","The location of the actual macro invocation or syntax sugar , e.g.\n`let x = foo!();` or `if let Some(y) = x {}`",120,null],[12,"callee","","Information about the expansion.",120,null],[3,"RealFileLoader","","A FileLoader that uses std::fs to load real files.",null,null],[3,"CodeMap","","",null,null],[12,"files","","",121,null],[4,"ExpnFormat","","The source of expansion.",null,null],[13,"MacroAttribute","","e.g. #[derive(...)] <item>",122,null],[13,"MacroBang","","e.g. `format!()`",122,null],[5,"original_sp","","Return the span itself if it doesn't come from a macro expansion,\notherwise return the call site span up to the `enclosing_sp` by\nfollowing the `expn_info` chain.",null,{"inputs":[{"name":"codemap"},{"name":"span"},{"name":"span"}],"output":{"name":"span"}}],[5,"spanned","","",null,{"inputs":[{"name":"bytepos"},{"name":"bytepos"},{"name":"t"}],"output":{"name":"spanned"}}],[5,"respan","","",null,{"inputs":[{"name":"span"},{"name":"t"}],"output":{"name":"spanned"}}],[5,"dummy_spanned","","",null,{"inputs":[{"name":"t"}],"output":{"name":"spanned"}}],[5,"combine_spans","","Build a span that covers the two provided spans.",null,{"inputs":[{"name":"span"},{"name":"span"}],"output":{"name":"span"}}],[8,"FileLoader","","An abstraction over the fs operations used by the Parser.",null,null],[10,"file_exists","","Query the existence of a file.",123,null],[10,"abs_path","","Return an absolute path to a file, if possible.",123,null],[10,"read_file","","Read the contents of an UTF-8 file into memory.",123,null],[11,"eq","","",122,null],[11,"ne","","",122,null],[11,"fmt","","",122,null],[11,"hash","","",122,null],[11,"clone","","",122,null],[11,"fmt","","",118,null],[11,"hash","","",118,null],[11,"decode","","",118,{"inputs":[{"name":"__dt"}],"output":{"name":"result"}}],[11,"encode","","",118,null],[11,"eq","","",118,null],[11,"ne","","",118,null],[11,"clone","","",118,null],[11,"fmt","","",119,null],[11,"hash","","",119,null],[11,"clone","","",119,null],[11,"name","","",119,null],[11,"fmt","","",120,null],[11,"hash","","",120,null],[11,"file_exists","","",124,null],[11,"abs_path","","",124,null],[11,"read_file","","",124,null],[11,"new","","",121,{"inputs":[],"output":{"name":"codemap"}}],[11,"with_file_loader","","",121,{"inputs":[{"name":"box"}],"output":{"name":"codemap"}}],[11,"file_exists","","",121,null],[11,"load_file","","",121,null],[11,"new_filemap","","Creates a new filemap without setting its line information. If you don't\nintend to set the line information yourself, you should use new_filemap_and_lines.",121,null],[11,"new_filemap_and_lines","","Creates a new filemap and sets its line information.",121,null],[11,"new_imported_filemap","","Allocates a new FileMap representing a source file from an external\ncrate. The source code of such an "imported filemap" is not available,\nbut we still know enough to generate accurate debuginfo location\ninformation for things inlined from other crates.",121,null],[11,"mk_substr_filename","","",121,null],[11,"lookup_char_pos","","Lookup source information about a BytePos",121,null],[11,"lookup_char_pos_adj","","",121,null],[11,"span_to_string","","",121,null],[11,"span_to_expanded_string","","Returns a formatted string showing the expansion chain of a span",121,null],[11,"source_callsite","","Return the source span - this is either the supplied span, or the span for\nthe macro callsite that expanded to it.",121,null],[11,"source_callee","","Return the source callee.",121,null],[11,"span_to_filename","","",121,null],[11,"span_to_lines","","",121,null],[11,"span_to_snippet","","",121,null],[11,"get_filemap","","",121,null],[11,"lookup_byte_offset","","For a global BytePos compute the local offset within the containing FileMap",121,null],[11,"bytepos_to_file_charpos","","Converts an absolute BytePos to a CharPos relative to the filemap.",121,null],[11,"record_expansion","","",121,null],[11,"with_expn_info","","",121,null],[11,"span_allows_unstable","","Check if a span is "internal" to a macro in which #[unstable]\nitems can be used (that is, a macro marked with\n`#[allow_internal_unstable]`).",121,null],[11,"count_lines","","",121,null],[11,"macro_backtrace","","",121,null],[11,"lookup_char_pos","","",121,null],[11,"span_to_lines","","",121,null],[11,"span_to_string","","",121,null],[11,"span_to_filename","","",121,null],[11,"macro_backtrace","","",121,null],[0,"config","syntex_syntax","",null,null],[3,"StripUnconfigured","syntex_syntax::config","A folder that strips out items that do not belong in the current configuration.",null,null],[12,"config","","",125,null],[12,"should_test","","",125,null],[12,"sess","","",125,null],[12,"features","","",125,null],[5,"strip_unconfigured_items","","",null,null],[11,"process_cfg_attrs","","",125,null],[11,"fold_foreign_mod","","",125,null],[11,"fold_item_kind","","",125,null],[11,"fold_expr","","",125,null],[11,"fold_opt_expr","","",125,null],[11,"fold_stmt","","",125,null],[11,"fold_mac","","",125,null],[11,"fold_item","","",125,null],[11,"fold_impl_item","","",125,null],[11,"fold_trait_item","","",125,null],[11,"fold_interpolated","","",125,null],[0,"entry","syntex_syntax","",null,null],[4,"EntryPointType","syntex_syntax::entry","",null,null],[13,"None","","",126,null],[13,"MainNamed","","",126,null],[13,"MainAttr","","",126,null],[13,"Start","","",126,null],[13,"OtherMain","","",126,null],[5,"entry_point_type","","",null,{"inputs":[{"name":"item"},{"name":"usize"}],"output":{"name":"entrypointtype"}}],[0,"feature_gate","syntex_syntax","Feature gating",null,null],[3,"Features","syntex_syntax::feature_gate","A set of features to be used by later passes.",null,null],[12,"declared_stable_lang_features","","#![feature] attrs for stable language features, for error reporting",127,null],[12,"declared_lib_features","","#![feature] attrs for non-language (library) features",127,null],[12,"asm","","",127,null],[12,"concat_idents","","",127,null],[12,"link_args","","",127,null],[12,"log_syntax","","",127,null],[12,"non_ascii_idents","","",127,null],[12,"plugin_registrar","","",127,null],[12,"thread_local","","",127,null],[12,"trace_macros","","",127,null],[12,"intrinsics","","",127,null],[12,"lang_items","","",127,null],[12,"link_llvm_intrinsics","","",127,null],[12,"linkage","","",127,null],[12,"quote","","",127,null],[12,"simd","","",127,null],[12,"rustc_diagnostic_macros","","",127,null],[12,"advanced_slice_patterns","","",127,null],[12,"box_syntax","","",127,null],[12,"placement_in_syntax","","",127,null],[12,"reflect","","",127,null],[12,"unboxed_closures","","",127,null],[12,"pushpop_unsafe","","",127,null],[12,"allocator","","",127,null],[12,"fundamental","","",127,null],[12,"linked_from","","",127,null],[12,"main","","",127,null],[12,"needs_allocator","","",127,null],[12,"on_unimplemented","","",127,null],[12,"plugin","","",127,null],[12,"simd_ffi","","",127,null],[12,"start","","",127,null],[12,"structural_match","","",127,null],[12,"panic_runtime","","",127,null],[12,"needs_panic_runtime","","",127,null],[12,"optin_builtin_traits","","",127,null],[12,"macro_reexport","","",127,null],[12,"staged_api","","",127,null],[12,"unmarked_api","","",127,null],[12,"no_core","","",127,null],[12,"box_patterns","","",127,null],[12,"unsafe_no_drop_flag","","",127,null],[12,"dropck_parametricity","","",127,null],[12,"custom_attribute","","",127,null],[12,"custom_derive","","",127,null],[12,"rustc_attrs","","",127,null],[12,"allow_internal_unstable","","",127,null],[12,"slice_patterns","","",127,null],[12,"associated_consts","","",127,null],[12,"const_fn","","",127,null],[12,"const_indexing","","",127,null],[12,"prelude_import","","",127,null],[12,"static_recursion","","",127,null],[12,"default_type_parameter_fallback","","",127,null],[12,"associated_type_defaults","","",127,null],[12,"type_macros","","",127,null],[12,"repr_simd","","",127,null],[12,"cfg_target_feature","","",127,null],[12,"platform_intrinsics","","",127,null],[12,"unwind_attributes","","",127,null],[12,"naked_functions","","",127,null],[12,"no_debug","","",127,null],[12,"omit_gdb_pretty_printer_section","","",127,null],[12,"cfg_target_vendor","","",127,null],[12,"stmt_expr_attributes","","",127,null],[12,"type_ascription","","",127,null],[12,"cfg_target_thread_local","","",127,null],[12,"abi_vectorcall","","",127,null],[12,"inclusive_range_syntax","","",127,null],[12,"question_mark","","",127,null],[12,"specialization","","",127,null],[12,"pub_restricted","","",127,null],[12,"drop_types_in_const","","",127,null],[12,"cfg_target_has_atomic","","",127,null],[12,"dotdot_in_tuple_patterns","","",127,null],[12,"conservative_impl_trait","","",127,null],[12,"relaxed_adts","","",127,null],[12,"never_type","","",127,null],[3,"GatedCfg","","",null,null],[4,"AttributeType","","",null,null],[13,"Normal","","Normal, builtin attribute that is consumed\nby the compiler before the unused_attribute check",128,null],[13,"Whitelisted","","Builtin attribute that may not be consumed by the compiler\nbefore the unused_attribute check. These attributes\nwill be ignored by the unused_attribute lint",128,null],[13,"CrateLevel","","Builtin attribute that is only allowed at the crate level",128,null],[4,"AttributeGate","","",null,null],[13,"Gated","","Is gated by a given feature gate, reason\nand function to check if enabled",129,null],[13,"Ungated","","Ungated attribute, can be used on all release channels",129,null],[4,"GateIssue","","",null,null],[13,"Language","","",130,null],[13,"Library","","",130,null],[4,"UnstableFeatures","","",null,null],[13,"Disallow","","Hard errors for unstable features are active, as on\nbeta/stable channels.",131,null],[13,"Allow","","Allow features to me activated, as on nightly.",131,null],[13,"Cheat","","Errors are bypassed for bootstrapping. This is required any time\nduring the build that feature-related lints are set to warn or above\nbecause the build turns on warnings-as-errors and uses lots of unstable\nfeatures. As a result, this is always required for building Rust itself.",131,null],[5,"check_attribute","","",null,{"inputs":[{"name":"attribute"},{"name":"handler"},{"name":"codemap"},{"name":"features"}],"output":null}],[5,"find_lang_feature_accepted_version","","",null,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[5,"emit_feature_err","","",null,{"inputs":[{"name":"handler"},{"name":"str"},{"name":"span"},{"name":"gateissue"},{"name":"str"}],"output":null}],[5,"get_features","","",null,null],[5,"check_crate","","",null,null],[17,"KNOWN_ATTRIBUTES","","",null,null],[17,"EXPLAIN_STMT_ATTR_SYNTAX","","",null,null],[17,"EXPLAIN_ASM","","",null,null],[17,"EXPLAIN_LOG_SYNTAX","","",null,null],[17,"EXPLAIN_CONCAT_IDENTS","","",null,null],[17,"EXPLAIN_TRACE_MACROS","","",null,null],[17,"EXPLAIN_ALLOW_INTERNAL_UNSTABLE","","",null,null],[17,"EXPLAIN_CUSTOM_DERIVE","","",null,null],[17,"EXPLAIN_DERIVE_UNDERSCORE","","",null,null],[17,"EXPLAIN_PLACEMENT_IN","","",null,null],[11,"new","","",127,{"inputs":[],"output":{"name":"features"}}],[11,"fmt","","",128,null],[11,"clone","","",128,null],[11,"eq","","",128,null],[11,"fmt","","",129,null],[11,"eq","","",132,null],[11,"ne","","",132,null],[11,"fmt","","",132,null],[11,"gate","","",132,{"inputs":[{"name":"metaitem"}],"output":{"name":"option"}}],[11,"check_and_emit","","",132,null],[11,"hash","","",131,null],[11,"eq","","",131,null],[11,"clone","","",131,null],[0,"fold","syntex_syntax","A Folder represents an AST->AST fold; it accepts an AST piece,\nand returns a piece of the same type. So, for instance, macro\nexpansion is a Folder that walks over an AST and produces another\nAST.",null,null],[5,"noop_fold_meta_items","syntex_syntax::fold","",null,{"inputs":[{"name":"vec"},{"name":"t"}],"output":{"name":"vec"}}],[5,"noop_fold_view_path","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"p"}}],[5,"fold_attrs","","",null,{"inputs":[{"name":"vec"},{"name":"t"}],"output":{"name":"vec"}}],[5,"fold_thin_attrs","","",null,{"inputs":[{"name":"thinvec"},{"name":"t"}],"output":{"name":"thinvec"}}],[5,"noop_fold_arm","","",null,{"inputs":[{"name":"arm"},{"name":"t"}],"output":{"name":"arm"}}],[5,"noop_fold_ty_binding","","",null,{"inputs":[{"name":"typebinding"},{"name":"t"}],"output":{"name":"typebinding"}}],[5,"noop_fold_ty","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"p"}}],[5,"noop_fold_foreign_mod","","",null,{"inputs":[{"name":"foreignmod"},{"name":"t"}],"output":{"name":"foreignmod"}}],[5,"noop_fold_variant","","",null,{"inputs":[{"name":"variant"},{"name":"t"}],"output":{"name":"variant"}}],[5,"noop_fold_ident","","",null,{"inputs":[{"name":"ident"},{"name":"t"}],"output":{"name":"ident"}}],[5,"noop_fold_usize","","",null,{"inputs":[{"name":"usize"},{"name":"t"}],"output":{"name":"usize"}}],[5,"noop_fold_path","","",null,{"inputs":[{"name":"path"},{"name":"t"}],"output":{"name":"path"}}],[5,"noop_fold_path_parameters","","",null,{"inputs":[{"name":"pathparameters"},{"name":"t"}],"output":{"name":"pathparameters"}}],[5,"noop_fold_angle_bracketed_parameter_data","","",null,{"inputs":[{"name":"anglebracketedparameterdata"},{"name":"t"}],"output":{"name":"anglebracketedparameterdata"}}],[5,"noop_fold_parenthesized_parameter_data","","",null,{"inputs":[{"name":"parenthesizedparameterdata"},{"name":"t"}],"output":{"name":"parenthesizedparameterdata"}}],[5,"noop_fold_local","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"p"}}],[5,"noop_fold_attribute","","",null,{"inputs":[{"name":"attribute"},{"name":"t"}],"output":{"name":"option"}}],[5,"noop_fold_mac","","",null,{"inputs":[{"name":"mac"},{"name":"t"}],"output":{"name":"mac"}}],[5,"noop_fold_meta_item","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"p"}}],[5,"noop_fold_arg","","",null,{"inputs":[{"name":"arg"},{"name":"t"}],"output":{"name":"arg"}}],[5,"noop_fold_tt","","",null,{"inputs":[{"name":"tokentree"},{"name":"t"}],"output":{"name":"tokentree"}}],[5,"noop_fold_tts","","",null,null],[5,"noop_fold_token","","",null,{"inputs":[{"name":"token"},{"name":"t"}],"output":{"name":"token"}}],[5,"noop_fold_interpolated","","apply folder to elements of interpolated nodes",null,{"inputs":[{"name":"nonterminal"},{"name":"t"}],"output":{"name":"nonterminal"}}],[5,"noop_fold_fn_decl","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"p"}}],[5,"noop_fold_ty_param_bound","","",null,{"inputs":[{"name":"typarambound"},{"name":"t"}],"output":{"name":"typarambound"}}],[5,"noop_fold_ty_param","","",null,{"inputs":[{"name":"typaram"},{"name":"t"}],"output":{"name":"typaram"}}],[5,"noop_fold_ty_params","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"p"}}],[5,"noop_fold_lifetime","","",null,{"inputs":[{"name":"lifetime"},{"name":"t"}],"output":{"name":"lifetime"}}],[5,"noop_fold_lifetime_def","","",null,{"inputs":[{"name":"lifetimedef"},{"name":"t"}],"output":{"name":"lifetimedef"}}],[5,"noop_fold_lifetimes","","",null,{"inputs":[{"name":"vec"},{"name":"t"}],"output":{"name":"vec"}}],[5,"noop_fold_lifetime_defs","","",null,{"inputs":[{"name":"vec"},{"name":"t"}],"output":{"name":"vec"}}],[5,"noop_fold_opt_lifetime","","",null,{"inputs":[{"name":"option"},{"name":"t"}],"output":{"name":"option"}}],[5,"noop_fold_generics","","",null,{"inputs":[{"name":"generics"},{"name":"t"}],"output":{"name":"generics"}}],[5,"noop_fold_where_clause","","",null,{"inputs":[{"name":"whereclause"},{"name":"t"}],"output":{"name":"whereclause"}}],[5,"noop_fold_where_predicate","","",null,{"inputs":[{"name":"wherepredicate"},{"name":"t"}],"output":{"name":"wherepredicate"}}],[5,"noop_fold_variant_data","","",null,{"inputs":[{"name":"variantdata"},{"name":"t"}],"output":{"name":"variantdata"}}],[5,"noop_fold_trait_ref","","",null,{"inputs":[{"name":"traitref"},{"name":"t"}],"output":{"name":"traitref"}}],[5,"noop_fold_poly_trait_ref","","",null,{"inputs":[{"name":"polytraitref"},{"name":"t"}],"output":{"name":"polytraitref"}}],[5,"noop_fold_struct_field","","",null,{"inputs":[{"name":"structfield"},{"name":"t"}],"output":{"name":"structfield"}}],[5,"noop_fold_field","","",null,{"inputs":[{"name":"field"},{"name":"t"}],"output":{"name":"field"}}],[5,"noop_fold_mt","","",null,{"inputs":[{"name":"mutty"},{"name":"t"}],"output":{"name":"mutty"}}],[5,"noop_fold_opt_bounds","","",null,{"inputs":[{"name":"option"},{"name":"t"}],"output":{"name":"option"}}],[5,"noop_fold_block","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"p"}}],[5,"noop_fold_item_kind","","",null,{"inputs":[{"name":"itemkind"},{"name":"t"}],"output":{"name":"itemkind"}}],[5,"noop_fold_trait_item","","",null,{"inputs":[{"name":"traititem"},{"name":"t"}],"output":{"name":"smallvector"}}],[5,"noop_fold_impl_item","","",null,{"inputs":[{"name":"implitem"},{"name":"t"}],"output":{"name":"smallvector"}}],[5,"noop_fold_mod","","",null,{"inputs":[{"name":"mod"},{"name":"t"}],"output":{"name":"mod"}}],[5,"noop_fold_crate","","",null,{"inputs":[{"name":"crate"},{"name":"t"}],"output":{"name":"crate"}}],[5,"noop_fold_item","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"smallvector"}}],[5,"noop_fold_item_simple","","",null,{"inputs":[{"name":"item"},{"name":"t"}],"output":{"name":"item"}}],[5,"noop_fold_foreign_item","","",null,{"inputs":[{"name":"foreignitem"},{"name":"t"}],"output":{"name":"foreignitem"}}],[5,"noop_fold_method_sig","","",null,{"inputs":[{"name":"methodsig"},{"name":"t"}],"output":{"name":"methodsig"}}],[5,"noop_fold_pat","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"p"}}],[5,"noop_fold_expr","","",null,{"inputs":[{"name":"expr"},{"name":"t"}],"output":{"name":"expr"}}],[5,"noop_fold_opt_expr","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"option"}}],[5,"noop_fold_exprs","","",null,{"inputs":[{"name":"vec"},{"name":"t"}],"output":{"name":"vec"}}],[5,"noop_fold_stmt","","",null,{"inputs":[{"name":"stmt"},{"name":"t"}],"output":{"name":"smallvector"}}],[5,"noop_fold_vis","","",null,{"inputs":[{"name":"visibility"},{"name":"t"}],"output":{"name":"visibility"}}],[8,"Folder","","",null,null],[11,"fold_crate","","",133,null],[11,"fold_meta_items","","",133,null],[11,"fold_meta_item","","",133,null],[11,"fold_view_path","","",133,null],[11,"fold_foreign_item","","",133,null],[11,"fold_item","","",133,null],[11,"fold_item_simple","","",133,null],[11,"fold_struct_field","","",133,null],[11,"fold_item_kind","","",133,null],[11,"fold_trait_item","","",133,null],[11,"fold_impl_item","","",133,null],[11,"fold_fn_decl","","",133,null],[11,"fold_block","","",133,null],[11,"fold_stmt","","",133,null],[11,"fold_arm","","",133,null],[11,"fold_pat","","",133,null],[11,"fold_expr","","",133,null],[11,"fold_opt_expr","","",133,null],[11,"fold_exprs","","",133,null],[11,"fold_ty","","",133,null],[11,"fold_ty_binding","","",133,null],[11,"fold_mod","","",133,null],[11,"fold_foreign_mod","","",133,null],[11,"fold_variant","","",133,null],[11,"fold_ident","","",133,null],[11,"fold_usize","","",133,null],[11,"fold_path","","",133,null],[11,"fold_path_parameters","","",133,null],[11,"fold_angle_bracketed_parameter_data","","",133,null],[11,"fold_parenthesized_parameter_data","","",133,null],[11,"fold_local","","",133,null],[11,"fold_mac","","",133,null],[11,"fold_lifetime","","",133,null],[11,"fold_lifetime_def","","",133,null],[11,"fold_attribute","","",133,null],[11,"fold_arg","","",133,null],[11,"fold_generics","","",133,null],[11,"fold_trait_ref","","",133,null],[11,"fold_poly_trait_ref","","",133,null],[11,"fold_variant_data","","",133,null],[11,"fold_lifetimes","","",133,null],[11,"fold_lifetime_defs","","",133,null],[11,"fold_ty_param","","",133,null],[11,"fold_ty_params","","",133,null],[11,"fold_tt","","",133,null],[11,"fold_tts","","",133,null],[11,"fold_token","","",133,null],[11,"fold_interpolated","","",133,null],[11,"fold_opt_lifetime","","",133,null],[11,"fold_opt_bounds","","",133,null],[11,"fold_bounds","","",133,null],[11,"fold_ty_param_bound","","",133,null],[11,"fold_mt","","",133,null],[11,"fold_field","","",133,null],[11,"fold_where_clause","","",133,null],[11,"fold_where_predicate","","",133,null],[11,"fold_vis","","",133,null],[11,"new_id","","",133,null],[11,"new_span","","",133,null],[0,"parse","syntex_syntax","The main parser interface",null,null],[3,"ParseSess","syntex_syntax::parse","Info about a parsing session.",null,null],[12,"span_diagnostic","","",134,null],[5,"parse_crate_from_file","","",null,{"inputs":[{"name":"path"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"presult"}}],[5,"parse_crate_attrs_from_file","","",null,{"inputs":[{"name":"path"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"presult"}}],[5,"parse_crate_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"presult"}}],[5,"parse_crate_attrs_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"presult"}}],[5,"parse_expr_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"presult"}}],[5,"parse_item_from_source_str","","Parses an item.",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"presult"}}],[5,"parse_meta_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"presult"}}],[5,"parse_stmt_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"presult"}}],[5,"parse_tts_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"presult"}}],[5,"new_parser_from_source_str","","",null,{"inputs":[{"name":"parsesess"},{"name":"crateconfig"},{"name":"string"},{"name":"string"}],"output":{"name":"parser"}}],[5,"new_parser_from_file","","Create a new parser, handling errors as appropriate\nif the file doesn't exist",null,{"inputs":[{"name":"parsesess"},{"name":"crateconfig"},{"name":"path"}],"output":{"name":"parser"}}],[5,"new_sub_parser_from_file","","Given a session, a crate config, a path, and a span, add\nthe file at the given path to the codemap, and return a parser.\nOn an error, use the given span as the source of the problem.",null,{"inputs":[{"name":"parsesess"},{"name":"crateconfig"},{"name":"path"},{"name":"bool"},{"name":"option"},{"name":"span"}],"output":{"name":"parser"}}],[5,"filemap_to_parser","","Given a filemap and config, return a parser",null,{"inputs":[{"name":"parsesess"},{"name":"rc"},{"name":"crateconfig"}],"output":{"name":"parser"}}],[5,"new_parser_from_tts","","",null,{"inputs":[{"name":"parsesess"},{"name":"crateconfig"},{"name":"vec"}],"output":{"name":"parser"}}],[5,"new_parser_from_ts","","",null,{"inputs":[{"name":"parsesess"},{"name":"crateconfig"},{"name":"tokenstream"}],"output":{"name":"parser"}}],[5,"filemap_to_tts","","Given a filemap, produce a sequence of token-trees",null,{"inputs":[{"name":"parsesess"},{"name":"rc"}],"output":{"name":"vec"}}],[5,"tts_to_parser","","Given tts and cfg, produce a parser",null,{"inputs":[{"name":"parsesess"},{"name":"vec"},{"name":"crateconfig"}],"output":{"name":"parser"}}],[5,"char_lit","","Parse a string representing a character literal into its final form.\nRather than just accepting/rejecting a given literal, unescapes it as\nwell. Can take any slice prefixed by a character escape. Returns the\ncharacter and the number of characters consumed.",null,null],[5,"str_lit","","Parse a string representing a string literal into its final form. Does\nunescaping.",null,{"inputs":[{"name":"str"}],"output":{"name":"string"}}],[5,"raw_str_lit","","Parse a string representing a raw string literal into its final form. The\nonly operation this does is convert embedded CRLF into a single LF.",null,{"inputs":[{"name":"str"}],"output":{"name":"string"}}],[5,"float_lit","","",null,{"inputs":[{"name":"str"},{"name":"option"},{"name":"handler"},{"name":"span"}],"output":{"name":"litkind"}}],[5,"byte_lit","","Parse a string representing a byte literal into its final form. Similar to `char_lit`",null,null],[5,"byte_str_lit","","",null,{"inputs":[{"name":"str"}],"output":{"name":"rc"}}],[5,"integer_lit","","",null,{"inputs":[{"name":"str"},{"name":"option"},{"name":"handler"},{"name":"span"}],"output":{"name":"litkind"}}],[0,"parser","","",null,null],[3,"Restrictions","syntex_syntax::parse::parser","",null,null],[3,"Parser","","",null,null],[12,"sess","","",135,null],[12,"token","","the current token:",135,null],[12,"span","","the span of the current token:",135,null],[12,"last_span","","the span of the prior token:",135,null],[12,"cfg","","",135,null],[12,"last_token","","the previous token or None (only stashed sometimes).",135,null],[12,"buffer","","",135,null],[12,"buffer_start","","",135,null],[12,"buffer_end","","",135,null],[12,"tokens_consumed","","",135,null],[12,"restrictions","","",135,null],[12,"quote_depth","","",135,null],[12,"reader","","",135,null],[12,"obsolete_set","","The set of seen errors about obsolete syntax. Used to suppress\nextra detail when the same error is seen twice",135,null],[12,"filename","","Used to determine the path to externally loaded source files",135,null],[12,"mod_path_stack","","",135,null],[12,"open_braces","","Stack of open delimiters and their spans. Used for error message.",135,null],[12,"owns_directory","","Flag if this parser "owns" the directory that it is currently parsing\nin. This will affect how nested files are looked up.",135,null],[12,"root_module_name","","Name of the root module this parser originated from. If `None`, then the\nname is not known. This does not change while the parser is descending\ninto modules, and sub-parsers have new values for this name.",135,null],[12,"expected_tokens","","",135,null],[3,"ModulePath","","Information about the path to a module.",null,null],[12,"name","","",136,null],[12,"path_exists","","",136,null],[12,"result","","",136,null],[3,"ModulePathSuccess","","",null,null],[12,"path","","",137,null],[12,"owns_directory","","",137,null],[3,"ModulePathError","","",null,null],[12,"err_msg","","",138,null],[12,"help_msg","","",138,null],[4,"PathStyle","","How to parse a path. There are three different kinds of paths, all of which\nare parsed somewhat differently.",null,null],[13,"Mod","","A path with no type parameters, e.g. `foo::bar::Baz`, used in imports or visibilities.",139,null],[13,"Type","","A path with a lifetime and type parameters, with no double colons\nbefore the type parameters; e.g. `foo::bar<'a>::Baz<T>`, used in types.\nPaths using this style can be passed into macros expecting `path` nonterminals.",139,null],[13,"Expr","","A path with a lifetime and type parameters with double colons before\nthe type parameters; e.g. `foo::bar::<'a>::Baz::<T>`, used in expressions or patterns.",139,null],[4,"BoundParsingMode","","How to parse a bound, whether to allow bound modifiers such as `?`.",null,null],[13,"Bare","","",140,null],[13,"Modified","","",140,null],[4,"SemiColonMode","","",null,null],[13,"Break","","",141,null],[13,"Ignore","","",141,null],[4,"TokenType","","",null,null],[13,"Token","","",142,null],[13,"Keyword","","",142,null],[13,"Operator","","",142,null],[4,"LhsExpr","","",null,null],[13,"NotYetParsed","","",143,null],[13,"AttributesParsed","","",143,null],[13,"AlreadyParsed","","",143,null],[17,"RESTRICTION_STMT_EXPR","","",null,null],[17,"RESTRICTION_NO_STRUCT_LITERAL","","",null,null],[17,"NO_NONINLINE_MOD","","",null,null],[11,"hash","","",144,null],[11,"cmp","","",144,null],[11,"partial_cmp","","",144,null],[11,"lt","","",144,null],[11,"le","","",144,null],[11,"gt","","",144,null],[11,"ge","","",144,null],[11,"clone","","",144,null],[11,"eq","","",144,null],[11,"ne","","",144,null],[11,"fmt","","",144,null],[11,"empty","","Returns an empty set of flags.",144,{"inputs":[],"output":{"name":"restrictions"}}],[11,"all","","Returns the set containing all flags.",144,{"inputs":[],"output":{"name":"restrictions"}}],[11,"bits","","Returns the raw value of the flags currently stored.",144,null],[11,"from_bits","","Convert from underlying bit representation, unless that\nrepresentation contains bits that do not correspond to a flag.",144,{"inputs":[{"name":"u8"}],"output":{"name":"option"}}],[11,"from_bits_truncate","","Convert from underlying bit representation, dropping any bits\nthat do not correspond to flags.",144,{"inputs":[{"name":"u8"}],"output":{"name":"restrictions"}}],[11,"is_empty","","Returns `true` if no flags are currently stored.",144,null],[11,"is_all","","Returns `true` if all flags are currently set.",144,null],[11,"intersects","","Returns `true` if there are flags common to both `self` and `other`.",144,null],[11,"contains","","Returns `true` all of the flags in `other` are contained within `self`.",144,null],[11,"insert","","Inserts the specified flags in-place.",144,null],[11,"remove","","Removes the specified flags in-place.",144,null],[11,"toggle","","Toggles the specified flags in-place.",144,null],[11,"bitor","","Returns the union of the two sets of flags.",144,null],[11,"bitxor","","Returns the left flags, but with all the right flags toggled.",144,null],[11,"bitand","","Returns the intersection between the two sets of flags.",144,null],[11,"sub","","Returns the set difference of the two sets of flags.",144,null],[11,"not","","Returns the complement of this set of flags.",144,null],[11,"from_iter","","",144,{"inputs":[{"name":"t"}],"output":{"name":"restrictions"}}],[11,"restriction_stmt_expr","","",144,{"inputs":[],"output":{"name":"self"}}],[11,"restriction_no_struct_literal","","",144,{"inputs":[],"output":{"name":"self"}}],[11,"no_noninline_mod","","",144,{"inputs":[],"output":{"name":"self"}}],[11,"eq","","",139,null],[11,"clone","","",139,null],[11,"eq","","",140,null],[11,"clone","","",140,null],[11,"eq","","",141,null],[11,"clone","","",141,null],[11,"clone","","",142,null],[11,"eq","","",142,null],[11,"ne","","",142,null],[11,"from","","",143,{"inputs":[{"name":"option"}],"output":{"name":"self"}}],[11,"from","","",143,{"inputs":[{"name":"p"}],"output":{"name":"self"}}],[11,"new","","",135,{"inputs":[{"name":"parsesess"},{"name":"crateconfig"},{"name":"box"}],"output":{"name":"parser"}}],[11,"token_to_string","","Convert a token to a string using self's reader",135,{"inputs":[{"name":"token"}],"output":{"name":"string"}}],[11,"this_token_to_string","","Convert the current token to a string using self's reader",135,null],[11,"this_token_descr","","",135,null],[11,"unexpected_last","","",135,null],[11,"unexpected","","",135,null],[11,"expect","","Expect and consume the token t. Signal an error if\nthe next token is not t.",135,null],[11,"expect_one_of","","Expect next token to be edible or inedible token. If edible,\nthen consume it; if inedible, then return without consuming\nanything. Signal a fatal error if next token is unexpected.",135,null],[11,"parse_ident","","",135,null],[11,"check","","Check if the next token is `tok`, and return `true` if so.",135,null],[11,"eat","","Consume token 'tok' if it exists. Returns true if the given\ntoken was present, false otherwise.",135,null],[11,"check_keyword","","",135,null],[11,"eat_keyword","","If the next token is the given keyword, eat it and return\ntrue. Otherwise, return false.",135,null],[11,"eat_keyword_noexpect","","",135,null],[11,"check_contextual_keyword","","",135,null],[11,"eat_contextual_keyword","","",135,null],[11,"expect_keyword","","If the given word is not a keyword, signal an error.\nIf the next token is not the given word, signal an error.\nOtherwise, eat it.",135,null],[11,"check_strict_keywords","","Signal an error if the given string is a strict keyword",135,null],[11,"check_reserved_keywords","","Signal an error if the current token is a reserved keyword",135,null],[11,"expect_no_suffix","","",135,null],[11,"expect_gt","","Expect and consume a GT. if a >> is seen, replace it\nwith a single > and continue. If a GT is not seen,\nsignal an error.",135,null],[11,"parse_seq_to_before_gt_or_return","","",135,null],[11,"parse_seq_to_before_gt","","Parse a sequence bracketed by '<' and '>', stopping\nbefore the '>'.",135,null],[11,"parse_seq_to_gt","","",135,null],[11,"parse_seq_to_gt_or_return","","",135,null],[11,"eat_to_tokens","","Eat and discard tokens until one of `kets` is encountered. Respects token trees,\npasses through any errors encountered. Used for error recovery.",135,null],[11,"parse_seq_to_end","","Parse a sequence, including the closing delimiter. The function\nf must consume tokens until reaching the next separator or\nclosing bracket.",135,null],[11,"parse_seq_to_before_end","","Parse a sequence, not including the closing delimiter. The function\nf must consume tokens until reaching the next separator or\nclosing bracket.",135,null],[11,"parse_unspanned_seq","","Parse a sequence, including the closing delimiter. The function\nf must consume tokens until reaching the next separator or\nclosing bracket.",135,null],[11,"parse_seq","","",135,null],[11,"bump","","Advance the parser by one token",135,null],[11,"bump_and_get","","Advance the parser by one token and return the bumped token.",135,null],[11,"bump_with","","Advance the parser using provided token as a next one. Use this when\nconsuming a part of a token. For example a single `<` from `<<`.",135,null],[11,"buffer_length","","",135,null],[11,"look_ahead","","",135,null],[11,"fatal","","",135,null],[11,"span_fatal","","",135,null],[11,"span_fatal_help","","",135,null],[11,"bug","","",135,null],[11,"warn","","",135,null],[11,"span_warn","","",135,null],[11,"span_err","","",135,null],[11,"span_bug","","",135,null],[11,"abort_if_errors","","",135,null],[11,"diagnostic","","",135,null],[11,"id_to_interned_str","","",135,null],[11,"token_is_bare_fn_keyword","","Is the current token one of the keywords that signals a bare function\ntype?",135,null],[11,"get_lifetime","","",135,null],[11,"parse_for_in_type","","",135,null],[11,"parse_impl_trait_type","","",135,null],[11,"parse_ty_path","","",135,null],[11,"parse_ty_bare_fn","","parse a TyKind::BareFn type:",135,null],[11,"parse_obsolete_closure_kind","","Parses an obsolete closure kind (`&:`, `&mut:`, or `:`).",135,null],[11,"parse_unsafety","","",135,null],[11,"parse_trait_item","","Parse the items in a trait declaration",135,null],[11,"parse_trait_items","","Parse the items in a trait declaration",135,null],[11,"parse_mt","","Parse a possibly mutable type",135,null],[11,"parse_ret_ty","","Parse optional return type [ -> TY ] in function decl",135,null],[11,"parse_ty_sum","","Parse a type in a context where `T1+T2` is allowed.",135,null],[11,"parse_ty","","Parse a type.",135,null],[11,"parse_borrowed_pointee","","",135,null],[11,"parse_ptr","","",135,null],[11,"is_named_argument","","",135,null],[11,"parse_arg_general","","This version of parse arg doesn't necessarily require\nidentifier names.",135,null],[11,"parse_arg","","Parse a single function argument",135,null],[11,"parse_fn_block_arg","","Parse an argument in a lambda header e.g. |arg, arg|",135,null],[11,"maybe_parse_fixed_length_of_vec","","",135,null],[11,"parse_lit_token","","Matches token_lit = LIT_INTEGER | ...",135,null],[11,"parse_lit","","Matches lit = true | false | token_lit",135,null],[11,"parse_pat_literal_maybe_minus","","matches '-' lit | lit",135,null],[11,"parse_path_segment_ident","","",135,null],[11,"parse_qualified_path","","Parses qualified path.",135,null],[11,"parse_path","","Parses a path and optional type parameter bounds, depending on the\nmode. The `mode` parameter determines whether lifetimes, types, and/or\nbounds are permitted and whether `::` must precede type parameter\ngroups.",135,null],[11,"parse_path_segments_without_colons","","Examples:\n- `a::b<T,U>::c<V,W>`\n- `a::b<T,U>::c(V) -> W`\n- `a::b<T,U>::c(V)`",135,null],[11,"parse_path_segments_with_colons","","Examples:\n- `a::b::<T,U>::c`",135,null],[11,"parse_path_segments_without_types","","Examples:\n- `a::b::c`",135,null],[11,"parse_opt_lifetime","","parses 0 or 1 lifetime",135,null],[11,"parse_lifetime","","Parses a single lifetime\nMatches lifetime = LIFETIME",135,null],[11,"parse_lifetime_defs","","Parses `lifetime_defs = [ lifetime_defs { ',' lifetime_defs } ]` where `lifetime_def =\nlifetime [':' lifetimes]`",135,null],[11,"parse_lifetimes","","matches lifetimes = ( lifetime ) | ( lifetime , lifetimes ) actually, it matches the empty\none too, but putting that in there messes up the grammar....",135,null],[11,"parse_mutability","","Parse mutability (`mut` or nothing).",135,null],[11,"parse_field_name","","",135,null],[11,"parse_field","","Parse ident COLON expr",135,null],[11,"mk_expr","","",135,null],[11,"mk_unary","","",135,null],[11,"mk_binary","","",135,null],[11,"mk_call","","",135,null],[11,"mk_index","","",135,null],[11,"mk_range","","",135,null],[11,"mk_field","","",135,null],[11,"mk_tup_field","","",135,null],[11,"mk_assign_op","","",135,null],[11,"mk_mac_expr","","",135,null],[11,"mk_lit_u32","","",135,null],[11,"parse_block_expr","","Parse a block or unsafe block",135,null],[11,"parse_dot_or_call_expr","","parse a.b or a(13) or a[4] or just a",135,null],[11,"parse_dot_or_call_expr_with","","",135,null],[11,"check_unknown_macro_variable","","",135,null],[11,"parse_sep_and_kleene_op","","Parse an optional separator followed by a Kleene-style\nrepetition token (+ or *).",135,null],[11,"parse_token_tree","","parse a single token tree from the input.",135,null],[11,"parse_all_token_trees","","",135,null],[11,"parse_prefix_expr","","Parse a prefix-unary-operator expr",135,null],[11,"parse_assoc_expr","","Parse an associative expression",135,null],[11,"parse_assoc_expr_with","","Parse an associative expression with operators of at least `min_prec` precedence",135,null],[11,"parse_if_expr","","Parse an 'if' or 'if let' expression ('if' token already eaten)",135,null],[11,"parse_if_let_expr","","Parse an 'if let' expression ('if' token already eaten)",135,null],[11,"parse_lambda_expr","","",135,null],[11,"parse_else_expr","","",135,null],[11,"parse_for_expr","","Parse a 'for' .. 'in' expression ('for' token already eaten)",135,null],[11,"parse_while_expr","","Parse a 'while' or 'while let' expression ('while' token already eaten)",135,null],[11,"parse_while_let_expr","","Parse a 'while let' expression ('while' token already eaten)",135,null],[11,"parse_loop_expr","","",135,null],[11,"parse_arm","","",135,null],[11,"parse_expr","","Parse an expression",135,null],[11,"with_res","","Evaluate the closure with restrictions in place.",135,null],[11,"parse_expr_res","","Parse an expression, subject to the given restrictions",135,null],[11,"parse_pat","","Parse a pattern.",135,null],[11,"parse_stmt","","Parse a statement. This stops just before trailing semicolons on everything but items.\ne.g. a `StmtKind::Semi` parses to a `StmtKind::Expr`, leaving the trailing `;` unconsumed.",135,null],[11,"parse_block","","Parse a block. No inner attrs are allowed.",135,null],[11,"parse_full_stmt","","Parse a statement, including the trailing semicolon.",135,null],[11,"parse_generics","","Parse a set of optional generic type parameter declarations. Where\nclauses are not parsed here, and must be added later via\n`parse_where_clause()`.",135,null],[11,"parse_where_clause","","Parses an optional `where` clause and places it in `generics`.",135,null],[11,"parse_fn_decl","","Parse the argument list and result type of a function declaration",135,null],[11,"is_const_item","","true if we are looking at `const ID`, false for things like `const fn` etc",135,null],[11,"parse_fn_front_matter","","parses all the "front matter" for a `fn` declaration, up to\nand including the `fn` keyword:",135,null],[11,"parse_impl_item","","Parse an impl item.",135,null],[11,"parse_record_struct_body","","",135,null],[11,"parse_tuple_struct_body","","",135,null],[11,"parse_single_struct_field","","Parse a structure field declaration",135,null],[11,"submod_path_from_attr","","",135,null],[11,"default_submod_path","","Returns either a path to a module, or .",135,{"inputs":[{"name":"ident"},{"name":"path"},{"name":"codemap"}],"output":{"name":"modulepath"}}],[11,"parse_item","","",135,null],[11,"parse_crate_mod","","Parses a source module as a crate. This is the main\nentry point for the parser.",135,null],[11,"parse_optional_str","","",135,null],[11,"parse_str","","",135,null],[0,"lexer","syntex_syntax::parse","",null,null],[3,"TokenAndSpan","syntex_syntax::parse::lexer","",null,null],[12,"tok","","",145,null],[12,"sp","","",145,null],[3,"StringReader","","",null,null],[12,"span_diagnostic","","",146,null],[12,"pos","","The absolute offset within the codemap of the next character to read",146,null],[12,"last_pos","","The absolute offset within the codemap of the last character read(curr)",146,null],[12,"col","","The column of the next character to read",146,null],[12,"curr","","The last character to be read",146,null],[12,"filemap","","",146,null],[12,"peek_tok","","",146,null],[12,"peek_span","","",146,null],[12,"fatal_errs","","",146,null],[5,"is_pattern_whitespace","","",null,{"inputs":[{"name":"option"}],"output":{"name":"bool"}}],[5,"is_doc_comment","","",null,{"inputs":[{"name":"str"}],"output":{"name":"bool"}}],[5,"is_block_doc_comment","","",null,{"inputs":[{"name":"str"}],"output":{"name":"bool"}}],[0,"comments","","",null,null],[3,"Comment","syntex_syntax::parse::lexer::comments","",null,null],[12,"style","","",147,null],[12,"lines","","",147,null],[12,"pos","","",147,null],[3,"Literal","","",null,null],[12,"lit","","",148,null],[12,"pos","","",148,null],[4,"CommentStyle","","",null,null],[13,"Isolated","","No code on either side of each line of the comment",149,null],[13,"Trailing","","Code exists to the left of the comment",149,null],[13,"Mixed","","Code before /* foo */ and after the comment",149,null],[13,"BlankLine","","Just a manual blank line "\\n\\n", for layout",149,null],[5,"is_doc_comment","","",null,{"inputs":[{"name":"str"}],"output":{"name":"bool"}}],[5,"doc_comment_style","","",null,{"inputs":[{"name":"str"}],"output":{"name":"attrstyle"}}],[5,"strip_doc_comment_decoration","","",null,{"inputs":[{"name":"str"}],"output":{"name":"string"}}],[5,"gather_comments_and_literals","","",null,null],[11,"eq","","",149,null],[11,"clone","","",149,null],[11,"clone","","",147,null],[11,"clone","","",148,null],[8,"Reader","syntex_syntax::parse::lexer","",null,null],[10,"is_eof","","",150,null],[10,"try_next_token","","",150,null],[11,"next_token","","",150,null],[10,"fatal","","Report a fatal error with the current span.",150,null],[10,"err","","Report a non-fatal error with the current span.",150,null],[10,"emit_fatal_errors","","",150,null],[11,"unwrap_or_abort","","",150,null],[10,"peek","","",150,null],[11,"try_real_token","","Get a token the parser cares about.",150,null],[11,"real_token","","",150,null],[11,"fmt","","",145,null],[11,"eq","","",145,null],[11,"ne","","",145,null],[11,"clone","","",145,null],[11,"is_eof","","",146,null],[11,"try_next_token","","Return the next token. EFFECT: advances the string_reader.",146,null],[11,"fatal","","",146,null],[11,"err","","",146,null],[11,"emit_fatal_errors","","",146,null],[11,"peek","","",146,null],[11,"new_raw","","For comments.rs, which hackily pokes into pos and curr",146,{"inputs":[{"name":"handler"},{"name":"rc"}],"output":{"name":"stringreader"}}],[11,"new","","",146,{"inputs":[{"name":"handler"},{"name":"rc"}],"output":{"name":"stringreader"}}],[11,"curr_is","","",146,null],[11,"fatal_span","","Report a fatal lexical error with a given span.",146,null],[11,"err_span","","Report a lexical error with a given span.",146,null],[11,"with_str_from","","Calls `f` with a string slice of the source text spanning from `start`\nup to but excluding `self.last_pos`, meaning the slice does not include\nthe character `self.curr`.",146,null],[11,"name_from","","Create a Name from a given offset to the current offset, each\nadjusted 1 towards each other (assumes that on either side there is a\nsingle-byte delimiter).",146,null],[11,"name_from_to","","As name_from, with an explicit endpoint.",146,null],[11,"bump","","Advance the StringReader by one character. If a newline is\ndiscovered, add it to the FileMap's list of line start offsets.",146,null],[11,"nextch","","",146,null],[11,"nextch_is","","",146,null],[11,"nextnextch","","",146,null],[11,"nextnextch_is","","",146,null],[0,"token","syntex_syntax::parse","",null,null],[3,"InternedString","syntex_syntax::parse::token","Represents a string stored in the thread-local interner. Because the\ninterner lives for the life of the thread, this can be safely treated as an\nimmortal string, as long as it never crosses between threads.",null,null],[4,"BinOpToken","","",null,null],[13,"Plus","","",151,null],[13,"Minus","","",151,null],[13,"Star","","",151,null],[13,"Slash","","",151,null],[13,"Percent","","",151,null],[13,"Caret","","",151,null],[13,"And","","",151,null],[13,"Or","","",151,null],[13,"Shl","","",151,null],[13,"Shr","","",151,null],[4,"DelimToken","","A delimiter token",null,null],[13,"Paren","","A round parenthesis: `(` or `)`",152,null],[13,"Bracket","","A square bracket: `[` or `]`",152,null],[13,"Brace","","A curly brace: `{` or `}`",152,null],[13,"NoDelim","","An empty delimiter",152,null],[4,"SpecialMacroVar","","",null,null],[13,"CrateMacroVar","","`$crate` will be filled in with the name of the crate a macro was\nimported from, if any.",153,null],[4,"Lit","","",null,null],[13,"Byte","","",154,null],[13,"Char","","",154,null],[13,"Integer","","",154,null],[13,"Float","","",154,null],[13,"Str_","","",154,null],[13,"StrRaw","","",154,null],[13,"ByteStr","","",154,null],[13,"ByteStrRaw","","",154,null],[4,"Token","","",null,null],[13,"Eq","","",155,null],[13,"Lt","","",155,null],[13,"Le","","",155,null],[13,"EqEq","","",155,null],[13,"Ne","","",155,null],[13,"Ge","","",155,null],[13,"Gt","","",155,null],[13,"AndAnd","","",155,null],[13,"OrOr","","",155,null],[13,"Not","","",155,null],[13,"Tilde","","",155,null],[13,"BinOp","","",155,null],[13,"BinOpEq","","",155,null],[13,"At","","",155,null],[13,"Dot","","",155,null],[13,"DotDot","","",155,null],[13,"DotDotDot","","",155,null],[13,"Comma","","",155,null],[13,"Semi","","",155,null],[13,"Colon","","",155,null],[13,"ModSep","","",155,null],[13,"RArrow","","",155,null],[13,"LArrow","","",155,null],[13,"FatArrow","","",155,null],[13,"Pound","","",155,null],[13,"Dollar","","",155,null],[13,"Question","","",155,null],[13,"OpenDelim","","An opening delimiter, eg. `{`",155,null],[13,"CloseDelim","","A closing delimiter, eg. `}`",155,null],[13,"Literal","","",155,null],[13,"Ident","","",155,null],[13,"Underscore","","",155,null],[13,"Lifetime","","",155,null],[13,"Interpolated","","",155,null],[13,"DocComment","","Doc comment",155,null],[13,"MatchNt","","Parse a nonterminal (name to bind, name of NT)",155,null],[13,"SubstNt","","A syntactic variable that will be filled in by macro expansion.",155,null],[13,"SpecialVarNt","","A macro variable with special meaning.",155,null],[13,"Whitespace","","Whitespace",155,null],[13,"Comment","","Comment",155,null],[13,"Shebang","","",155,null],[13,"Eof","","",155,null],[4,"Nonterminal","","For interpolation during macro expansion.",null,null],[13,"NtItem","","",156,null],[13,"NtBlock","","",156,null],[13,"NtStmt","","",156,null],[13,"NtPat","","",156,null],[13,"NtExpr","","",156,null],[13,"NtTy","","",156,null],[13,"NtIdent","","",156,null],[13,"NtMeta","","Stuff inside brackets for attributes",156,null],[13,"NtPath","","",156,null],[13,"NtTT","","",156,null],[13,"NtArm","","",156,null],[13,"NtImplItem","","",156,null],[13,"NtTraitItem","","",156,null],[13,"NtGenerics","","",156,null],[13,"NtWhereClause","","",156,null],[13,"NtArg","","",156,null],[5,"with_ident_interner","","",null,{"inputs":[{"name":"f"}],"output":{"name":"t"}}],[5,"reset_ident_interner","","Reset the ident interner to its initial state.",null,{"inputs":[],"output":null}],[5,"clear_ident_interner","","",null,{"inputs":[],"output":null}],[5,"intern_and_get_ident","","Interns and returns the string contents of an identifier, using the\nthread-local interner.",null,{"inputs":[{"name":"str"}],"output":{"name":"internedstring"}}],[5,"intern","","Maps a string to its interned representation.",null,{"inputs":[{"name":"str"}],"output":{"name":"name"}}],[5,"gensym","","gensym's a new usize, using the current interner.",null,{"inputs":[{"name":"str"}],"output":{"name":"name"}}],[5,"str_to_ident","","Maps a string to an identifier with an empty syntax context.",null,{"inputs":[{"name":"str"}],"output":{"name":"ident"}}],[5,"gensym_ident","","Maps a string to a gensym'ed identifier.",null,{"inputs":[{"name":"str"}],"output":{"name":"ident"}}],[5,"fresh_name","","",null,{"inputs":[{"name":"ident"}],"output":{"name":"name"}}],[0,"keywords","","",null,null],[3,"Keyword","syntex_syntax::parse::token::keywords","",null,null],[17,"Invalid","","",null,null],[17,"As","","",null,null],[17,"Box","","",null,null],[17,"Break","","",null,null],[17,"Const","","",null,null],[17,"Continue","","",null,null],[17,"Crate","","",null,null],[17,"Else","","",null,null],[17,"Enum","","",null,null],[17,"Extern","","",null,null],[17,"False","","",null,null],[17,"Fn","","",null,null],[17,"For","","",null,null],[17,"If","","",null,null],[17,"Impl","","",null,null],[17,"In","","",null,null],[17,"Let","","",null,null],[17,"Loop","","",null,null],[17,"Match","","",null,null],[17,"Mod","","",null,null],[17,"Move","","",null,null],[17,"Mut","","",null,null],[17,"Pub","","",null,null],[17,"Ref","","",null,null],[17,"Return","","",null,null],[17,"SelfValue","","",null,null],[17,"SelfType","","",null,null],[17,"Static","","",null,null],[17,"Struct","","",null,null],[17,"Super","","",null,null],[17,"Trait","","",null,null],[17,"True","","",null,null],[17,"Type","","",null,null],[17,"Unsafe","","",null,null],[17,"Use","","",null,null],[17,"Where","","",null,null],[17,"While","","",null,null],[17,"Abstract","","",null,null],[17,"Alignof","","",null,null],[17,"Become","","",null,null],[17,"Do","","",null,null],[17,"Final","","",null,null],[17,"Macro","","",null,null],[17,"Offsetof","","",null,null],[17,"Override","","",null,null],[17,"Priv","","",null,null],[17,"Proc","","",null,null],[17,"Pure","","",null,null],[17,"Sizeof","","",null,null],[17,"Typeof","","",null,null],[17,"Unsized","","",null,null],[17,"Virtual","","",null,null],[17,"Yield","","",null,null],[17,"Default","","",null,null],[17,"StaticLifetime","","",null,null],[17,"Union","","",null,null],[11,"eq","","",157,null],[11,"ne","","",157,null],[11,"clone","","",157,null],[11,"ident","","",157,null],[11,"name","","",157,null],[6,"IdentInterner","syntex_syntax::parse::token","",null,null],[11,"fmt","","",151,null],[11,"hash","","",151,null],[11,"eq","","",151,null],[11,"decode","","",151,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",151,null],[11,"clone","","",151,null],[11,"fmt","","",152,null],[11,"hash","","",152,null],[11,"eq","","",152,null],[11,"decode","","",152,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",152,null],[11,"clone","","",152,null],[11,"fmt","","",153,null],[11,"hash","","",153,null],[11,"eq","","",153,null],[11,"decode","","",153,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",153,null],[11,"clone","","",153,null],[11,"as_str","","",153,null],[11,"fmt","","",154,null],[11,"hash","","",154,null],[11,"eq","","",154,null],[11,"ne","","",154,null],[11,"decode","","",154,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",154,null],[11,"clone","","",154,null],[11,"short_name","","",154,null],[11,"fmt","","",155,null],[11,"hash","","",155,null],[11,"eq","","",155,null],[11,"ne","","",155,null],[11,"decode","","",155,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",155,null],[11,"clone","","",155,null],[11,"is_like_gt","","Returns `true` if the token starts with '>'.",155,null],[11,"can_begin_expr","","Returns `true` if the token can appear at the start of an expression.",155,null],[11,"is_lit","","Returns `true` if the token is any literal",155,null],[11,"is_ident","","Returns `true` if the token is an identifier.",155,null],[11,"is_interpolated","","Returns `true` if the token is interpolated.",155,null],[11,"is_path","","Returns `true` if the token is an interpolated path.",155,null],[11,"is_lifetime","","Returns `true` if the token is a lifetime.",155,null],[11,"is_mutability","","Returns `true` if the token is either the `mut` or `const` keyword.",155,null],[11,"is_path_start","","",155,null],[11,"to_binop","","Maps a token to its corresponding binary operator.",155,null],[11,"is_keyword","","Returns `true` if the token is a given keyword, `kw`.",155,null],[11,"is_path_segment_keyword","","",155,null],[11,"is_any_keyword","","Returns `true` if the token is either a strict or reserved keyword.",155,null],[11,"is_strict_keyword","","Returns `true` if the token is a strict keyword.",155,null],[11,"is_reserved_keyword","","Returns `true` if the token is a keyword reserved for possible future use.",155,null],[11,"hash","","",156,null],[11,"eq","","",156,null],[11,"ne","","",156,null],[11,"decode","","",156,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",156,null],[11,"clone","","",156,null],[11,"fmt","","",156,null],[11,"cmp","","",158,null],[11,"partial_cmp","","",158,null],[11,"lt","","",158,null],[11,"le","","",158,null],[11,"gt","","",158,null],[11,"ge","","",158,null],[11,"hash","","",158,null],[11,"eq","","",158,null],[11,"ne","","",158,null],[11,"clone","","",158,null],[11,"new","","",158,{"inputs":[{"name":"str"}],"output":{"name":"internedstring"}}],[11,"new_from_name","","",158,{"inputs":[{"name":"name"}],"output":{"name":"internedstring"}}],[11,"deref","","",158,null],[11,"fmt","","",158,null],[11,"fmt","","",158,null],[11,"eq","","",158,null],[11,"ne","","",158,null],[11,"eq","","",158,null],[11,"ne","","",158,null],[11,"decode","","",158,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"encode","","",158,null],[0,"attr","syntex_syntax::parse","",null,null],[11,"parse_outer_attributes","syntex_syntax::parse::parser","Parse attributes that appear before an item",135,null],[11,"parse_attribute","","Matches `attribute = # ! [ meta_item ]`",135,null],[11,"parse_inner_attributes","","Parse attributes that appear after the opening of an item. These should\nbe preceded by an exclamation mark, but we accept and warn about one\nterminated by a semicolon.\nmatches inner_attrs*",135,null],[11,"parse_meta_item","","matches meta_item = IDENT\n| IDENT = lit\n| IDENT meta_seq",135,null],[0,"common","syntex_syntax::parse","Common routines shared by parser mods",null,null],[3,"SeqSep","syntex_syntax::parse::common","SeqSep : a sequence separator (token)\nand whether a trailing separator is allowed.",null,null],[12,"sep","","",159,null],[12,"trailing_sep_allowed","","",159,null],[11,"trailing_allowed","","",159,{"inputs":[{"name":"token"}],"output":{"name":"seqsep"}}],[11,"none","","",159,{"inputs":[],"output":{"name":"seqsep"}}],[0,"classify","syntex_syntax::parse","Routines the parser uses to classify AST nodes",null,null],[5,"expr_requires_semi_to_be_stmt","syntex_syntax::parse::classify","Does this expression require a semicolon to be treated\nas a statement? The negation of this: 'can this expression\nbe used as a statement without a semicolon' -- is used\nas an early-bail-out in the parser so that, for instance,\n if true {...} else {...}\n |x| 5\nisn't parsed as (if true {...} else {...} | x) | 5",null,{"inputs":[{"name":"expr"}],"output":{"name":"bool"}}],[5,"expr_is_simple_block","","",null,{"inputs":[{"name":"expr"}],"output":{"name":"bool"}}],[5,"stmt_ends_with_semi","","this statement requires a semicolon after it.\nnote that in one case (stmt_semi), we've already\nseen the semicolon, and thus don't need another.",null,{"inputs":[{"name":"stmtkind"}],"output":{"name":"bool"}}],[0,"obsolete","syntex_syntax::parse","Support for parsing unsupported, old syntaxes, for the purpose of reporting errors. Parsing of\nthese syntaxes is tested by compile-test/obsolete-syntax.rs.",null,null],[4,"ObsoleteSyntax","syntex_syntax::parse::obsolete","The specific types of unsupported syntax",null,null],[13,"ClosureKind","","",160,null],[13,"ExternCrateString","","",160,null],[8,"ParserObsoleteMethods","","",null,null],[10,"obsolete","","Reports an obsolete syntax non-fatal error.",161,null],[10,"report","","",161,null],[11,"hash","","",160,null],[11,"eq","","",160,null],[11,"clone","","",160,null],[11,"obsolete","syntex_syntax::parse::parser","Reports an obsolete syntax non-fatal error.",135,null],[11,"report","","",135,null],[6,"PResult","syntex_syntax::parse","",null,null],[11,"new","","",134,{"inputs":[],"output":{"name":"parsesess"}}],[11,"with_span_handler","","",134,{"inputs":[{"name":"handler"},{"name":"rc"}],"output":{"name":"parsesess"}}],[11,"codemap","","",134,null],[0,"ptr","syntex_syntax","The AST pointer",null,null],[3,"P","syntex_syntax::ptr","An owned smart pointer.",null,null],[5,"P","","Construct a `P<T>` from a `T` value.",null,{"inputs":[{"name":"t"}],"output":{"name":"p"}}],[11,"cmp","","",162,null],[11,"partial_cmp","","",162,null],[11,"lt","","",162,null],[11,"le","","",162,null],[11,"gt","","",162,null],[11,"ge","","",162,null],[11,"eq","","",162,null],[11,"ne","","",162,null],[11,"hash","","",162,null],[11,"and_then","","Move out of the pointer.\nIntended for chaining transformations not covered by `map`.",162,null],[11,"unwrap","","Equivalent to and_then(|x| x)",162,null],[11,"map","","Transform the inner value, consuming `self` and producing a new `P<T>`.",162,null],[11,"deref","","",162,null],[11,"clone","","",162,null],[11,"fmt","","",162,null],[11,"fmt","","",162,null],[11,"fmt","","",162,null],[11,"decode","","",162,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"encode","","",162,null],[11,"new","","",162,{"inputs":[],"output":{"name":"p"}}],[11,"from_vec","","",162,{"inputs":[{"name":"vec"}],"output":{"name":"p"}}],[11,"into_vec","","",162,null],[11,"default","","",162,{"inputs":[],"output":{"name":"p"}}],[11,"clone","","",162,null],[11,"from","","",162,{"inputs":[{"name":"vec"}],"output":{"name":"self"}}],[11,"into","","",162,null],[11,"from_iter","","",162,{"inputs":[{"name":"i"}],"output":{"name":"p"}}],[11,"into_iter","","",162,null],[11,"encode","","",162,null],[11,"decode","","",162,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[0,"show_span","syntex_syntax","Span debugger",null,null],[5,"run","syntex_syntax::show_span","",null,{"inputs":[{"name":"handler"},{"name":"str"},{"name":"crate"}],"output":null}],[0,"std_inject","syntex_syntax","",null,null],[5,"no_core","syntex_syntax::std_inject","",null,{"inputs":[{"name":"crate"}],"output":{"name":"bool"}}],[5,"no_std","","",null,{"inputs":[{"name":"crate"}],"output":{"name":"bool"}}],[5,"maybe_inject_crates_ref","","",null,{"inputs":[{"name":"parsesess"},{"name":"crate"},{"name":"option"}],"output":{"name":"crate"}}],[0,"str","syntex_syntax","",null,null],[5,"char_at","syntex_syntax::str","",null,{"inputs":[{"name":"str"},{"name":"usize"}],"output":{"name":"char"}}],[5,"slice_shift_char","","",null,{"inputs":[{"name":"str"}],"output":{"name":"option"}}],[0,"test","syntex_syntax","",null,null],[5,"modify_for_testing","syntex_syntax::test","",null,{"inputs":[{"name":"parsesess"},{"name":"bool"},{"name":"crate"},{"name":"handler"}],"output":{"name":"crate"}}],[0,"tokenstream","syntex_syntax","# Token Streams",null,null],[3,"Delimited","syntex_syntax::tokenstream","A delimited sequence of token trees",null,null],[12,"delim","","The type of delimiter",163,null],[12,"open_span","","The span covering the opening delimiter",163,null],[12,"tts","","The delimited sequence of token trees",163,null],[12,"close_span","","The span covering the closing delimiter",163,null],[3,"SequenceRepetition","","A sequence of token trees",null,null],[12,"tts","","The sequence of token trees",164,null],[12,"separator","","The optional separator",164,null],[12,"op","","Whether the sequence can be repeated zero (*), or one or more times (+)",164,null],[12,"num_captures","","The number of `MatchNt`s that appear in the sequence (and subsequences)",164,null],[3,"TokenStream","","#Token Streams",null,null],[3,"Iter","","",null,null],[3,"Split","","",null,null],[4,"KleeneOp","","A Kleene-style [repetition operator](http://en.wikipedia.org/wiki/Kleene_star)\nfor token sequences.",null,null],[13,"ZeroOrMore","","",165,null],[13,"OneOrMore","","",165,null],[4,"TokenTree","","When the main rust parser encounters a syntax-extension invocation, it\nparses the arguments to the invocation as a token-tree. This is a very\nloose structure, such that all sorts of different AST-fragments can\nbe passed to syntax extensions using a uniform type.",null,null],[13,"Token","","A single token",166,null],[13,"Delimited","","A delimited sequence of token trees",166,null],[13,"Sequence","","A kleene-style repetition sequence with a span",166,null],[4,"InternalTS","","",null,null],[13,"Empty","","",167,null],[13,"Leaf","","",167,null],[12,"tts","syntex_syntax::tokenstream::InternalTS","",167,null],[12,"offset","","",167,null],[12,"len","","",167,null],[12,"sp","","",167,null],[13,"Node","syntex_syntax::tokenstream","",167,null],[12,"left","syntex_syntax::tokenstream::InternalTS","",167,null],[12,"right","","",167,null],[12,"len","","",167,null],[12,"sp","","",167,null],[11,"fmt","syntex_syntax::tokenstream","",163,null],[11,"hash","","",163,null],[11,"decode","","",163,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",163,null],[11,"eq","","",163,null],[11,"ne","","",163,null],[11,"clone","","",163,null],[11,"open_token","","Returns the opening delimiter as a token.",163,null],[11,"close_token","","Returns the closing delimiter as a token.",163,null],[11,"open_tt","","Returns the opening delimiter as a token tree.",163,null],[11,"close_tt","","Returns the closing delimiter as a token tree.",163,null],[11,"subtrees","","Returns the token trees inside the delimiters.",163,null],[11,"fmt","","",164,null],[11,"hash","","",164,null],[11,"decode","","",164,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",164,null],[11,"eq","","",164,null],[11,"ne","","",164,null],[11,"clone","","",164,null],[11,"fmt","","",165,null],[11,"hash","","",165,null],[11,"decode","","",165,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",165,null],[11,"eq","","",165,null],[11,"clone","","",165,null],[11,"hash","","",166,null],[11,"decode","","",166,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",166,null],[11,"eq","","",166,null],[11,"ne","","",166,null],[11,"clone","","",166,null],[11,"fmt","","",166,null],[11,"len","","",166,null],[11,"get_tt","","",166,null],[11,"get_span","","Returns the `Span` corresponding to this token tree.",166,null],[11,"parse","","Use this token tree as a matcher to parse given tts.",166,null],[11,"eq_unspanned","","Check if this TokenTree is equal to the other, regardless of span information.",166,null],[11,"span","","Retrieve the TokenTree's span.",166,null],[11,"eq_token","","Indicates if the stream is a token that is equal to the provided token.",166,null],[11,"is_ident","","Indicates if the token is an identifier.",166,null],[11,"maybe_ident","","Returns an identifier.",166,null],[11,"maybe_lit","","Returns a Token literal.",166,null],[11,"maybe_str","","Returns an AST string literal.",166,null],[11,"decode","","",168,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",168,null],[11,"hash","","",168,null],[11,"clone","","",168,null],[11,"decode","","",167,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",167,null],[11,"hash","","",167,null],[11,"eq","","",167,null],[11,"ne","","",167,null],[11,"clone","","",167,null],[11,"fmt","","",168,null],[11,"fmt","","",167,null],[11,"eq","","",168,null],[11,"mk_empty","","",168,{"inputs":[],"output":{"name":"tokenstream"}}],[11,"from_tts","","Convert a vector of `TokenTree`s into a `TokenStream`.",168,{"inputs":[{"name":"vec"}],"output":{"name":"tokenstream"}}],[11,"from_tokens","","Convert a vector of Tokens into a TokenStream.",168,{"inputs":[{"name":"vec"}],"output":{"name":"tokenstream"}}],[11,"respan","","Manually change a TokenStream's span.",168,null],[11,"concat","","Concatenates two TokenStreams into a new TokenStream.",168,{"inputs":[{"name":"tokenstream"},{"name":"tokenstream"}],"output":{"name":"tokenstream"}}],[11,"is_empty","","Indicate if the TokenStream is empty.",168,null],[11,"len","","Return a TokenStream's length.",168,null],[11,"to_vec","","Convert a TokenStream into a vector of borrowed TokenTrees.",168,null],[11,"to_tts","","Convert a TokenStream into a vector of TokenTrees (by cloning the TokenTrees).\n(This operation is an O(n) deep copy of the underlying structure.)",168,null],[11,"span","","Return the TokenStream's span.",168,null],[11,"iter","","Returns an iterator over a TokenStream (as a sequence of TokenTrees).",168,null],[11,"split","","Splits a TokenStream based on the provided `&TokenTree -> bool` predicate.",168,null],[11,"slice","","Produce a slice of the input TokenStream from the `from` index, inclusive, to the\n`to` index, non-inclusive.",168,null],[11,"slice_from","","Slice starting at the provided index, inclusive.",168,null],[11,"slice_to","","Slice up to the provided index, non-inclusive.",168,null],[11,"is_delimited","","Indicates where the stream is a single, delimited expression (e.g., `(a,b,c)` or\n`{a,b,c}`).",168,null],[11,"maybe_delimited","","Returns the inside of the delimited term as a new TokenStream.",168,null],[11,"is_ident","","Indicates if the stream is exactly one identifier.",168,null],[11,"maybe_ident","","Returns an identifier",168,null],[11,"eq_unspanned","","Compares two TokenStreams, checking equality without regarding span information.",168,null],[11,"as_delimited_stream","","Convert a vector of TokenTrees into a parentheses-delimited TokenStream.",168,{"inputs":[{"name":"vec"},{"name":"delimtoken"}],"output":{"name":"tokenstream"}}],[11,"next","","",169,null],[11,"next","","",170,null],[11,"index","","",168,null],[11,"index","","",167,null],[0,"visit","syntex_syntax","AST walker. Each overridden visit method has full control over what\nhappens with its node, it can do its own traversal of the node's children,\ncall `visit::walk_*` to apply the default traversal algorithm, or prevent\ndeeper traversal by doing nothing.",null,null],[4,"FnKind","syntex_syntax::visit","",null,null],[13,"ItemFn","","fn foo() or extern "Abi" fn foo()",171,null],[13,"Method","","fn foo(&self)",171,null],[13,"Closure","","|x, y| {}",171,null],[5,"walk_opt_name","","",null,{"inputs":[{"name":"v"},{"name":"span"},{"name":"option"}],"output":null}],[5,"walk_opt_ident","","",null,{"inputs":[{"name":"v"},{"name":"span"},{"name":"option"}],"output":null}],[5,"walk_opt_sp_ident","","",null,{"inputs":[{"name":"v"},{"name":"option"}],"output":null}],[5,"walk_ident","","",null,{"inputs":[{"name":"v"},{"name":"span"},{"name":"ident"}],"output":null}],[5,"walk_crate","","",null,{"inputs":[{"name":"v"},{"name":"crate"}],"output":null}],[5,"walk_macro_def","","",null,{"inputs":[{"name":"v"},{"name":"macrodef"}],"output":null}],[5,"walk_mod","","",null,{"inputs":[{"name":"v"},{"name":"mod"}],"output":null}],[5,"walk_local","","",null,{"inputs":[{"name":"v"},{"name":"local"}],"output":null}],[5,"walk_lifetime","","",null,{"inputs":[{"name":"v"},{"name":"lifetime"}],"output":null}],[5,"walk_lifetime_def","","",null,{"inputs":[{"name":"v"},{"name":"lifetimedef"}],"output":null}],[5,"walk_poly_trait_ref","","",null,{"inputs":[{"name":"v"},{"name":"polytraitref"},{"name":"traitboundmodifier"}],"output":null}],[5,"walk_trait_ref","","",null,{"inputs":[{"name":"v"},{"name":"traitref"}],"output":null}],[5,"walk_item","","",null,{"inputs":[{"name":"v"},{"name":"item"}],"output":null}],[5,"walk_enum_def","","",null,{"inputs":[{"name":"v"},{"name":"enumdef"},{"name":"generics"},{"name":"nodeid"}],"output":null}],[5,"walk_variant","","",null,{"inputs":[{"name":"v"},{"name":"variant"},{"name":"generics"},{"name":"nodeid"}],"output":null}],[5,"walk_ty","","",null,{"inputs":[{"name":"v"},{"name":"ty"}],"output":null}],[5,"walk_path","","",null,{"inputs":[{"name":"v"},{"name":"path"}],"output":null}],[5,"walk_path_list_item","","",null,{"inputs":[{"name":"v"},{"name":"path"},{"name":"pathlistitem"}],"output":null}],[5,"walk_path_segment","","",null,{"inputs":[{"name":"v"},{"name":"span"},{"name":"pathsegment"}],"output":null}],[5,"walk_path_parameters","","",null,{"inputs":[{"name":"v"},{"name":"span"},{"name":"pathparameters"}],"output":null}],[5,"walk_assoc_type_binding","","",null,{"inputs":[{"name":"v"},{"name":"typebinding"}],"output":null}],[5,"walk_pat","","",null,{"inputs":[{"name":"v"},{"name":"pat"}],"output":null}],[5,"walk_foreign_item","","",null,{"inputs":[{"name":"v"},{"name":"foreignitem"}],"output":null}],[5,"walk_ty_param_bound","","",null,{"inputs":[{"name":"v"},{"name":"typarambound"}],"output":null}],[5,"walk_generics","","",null,{"inputs":[{"name":"v"},{"name":"generics"}],"output":null}],[5,"walk_fn_ret_ty","","",null,{"inputs":[{"name":"v"},{"name":"functionretty"}],"output":null}],[5,"walk_fn_decl","","",null,{"inputs":[{"name":"v"},{"name":"fndecl"}],"output":null}],[5,"walk_fn_kind","","",null,{"inputs":[{"name":"v"},{"name":"fnkind"}],"output":null}],[5,"walk_fn","","",null,{"inputs":[{"name":"v"},{"name":"fnkind"},{"name":"fndecl"},{"name":"block"},{"name":"span"}],"output":null}],[5,"walk_trait_item","","",null,{"inputs":[{"name":"v"},{"name":"traititem"}],"output":null}],[5,"walk_impl_item","","",null,{"inputs":[{"name":"v"},{"name":"implitem"}],"output":null}],[5,"walk_struct_def","","",null,{"inputs":[{"name":"v"},{"name":"variantdata"}],"output":null}],[5,"walk_struct_field","","",null,{"inputs":[{"name":"v"},{"name":"structfield"}],"output":null}],[5,"walk_block","","",null,{"inputs":[{"name":"v"},{"name":"block"}],"output":null}],[5,"walk_stmt","","",null,{"inputs":[{"name":"v"},{"name":"stmt"}],"output":null}],[5,"walk_mac","","",null,{"inputs":[{"name":"v"},{"name":"mac"}],"output":null}],[5,"walk_expr","","",null,{"inputs":[{"name":"v"},{"name":"expr"}],"output":null}],[5,"walk_arm","","",null,{"inputs":[{"name":"v"},{"name":"arm"}],"output":null}],[5,"walk_vis","","",null,{"inputs":[{"name":"v"},{"name":"visibility"}],"output":null}],[8,"Visitor","","Each method of the Visitor trait is a hook to be potentially\noverridden. Each method's default implementation recursively visits\nthe substructure of the input via the corresponding `walk` method;\ne.g. the `visit_mod` method by default calls `visit::walk_mod`.",null,null],[11,"visit_name","","",172,null],[11,"visit_ident","","",172,null],[11,"visit_mod","","",172,null],[11,"visit_foreign_item","","",172,null],[11,"visit_item","","",172,null],[11,"visit_local","","",172,null],[11,"visit_block","","",172,null],[11,"visit_stmt","","",172,null],[11,"visit_arm","","",172,null],[11,"visit_pat","","",172,null],[11,"visit_expr","","",172,null],[11,"visit_expr_post","","",172,null],[11,"visit_ty","","",172,null],[11,"visit_generics","","",172,null],[11,"visit_fn","","",172,null],[11,"visit_trait_item","","",172,null],[11,"visit_impl_item","","",172,null],[11,"visit_trait_ref","","",172,null],[11,"visit_ty_param_bound","","",172,null],[11,"visit_poly_trait_ref","","",172,null],[11,"visit_variant_data","","",172,null],[11,"visit_struct_field","","",172,null],[11,"visit_enum_def","","",172,null],[11,"visit_variant","","",172,null],[11,"visit_lifetime","","",172,null],[11,"visit_lifetime_def","","",172,null],[11,"visit_mac","","",172,null],[11,"visit_path","","",172,null],[11,"visit_path_list_item","","",172,null],[11,"visit_path_segment","","",172,null],[11,"visit_path_parameters","","",172,null],[11,"visit_assoc_type_binding","","",172,null],[11,"visit_attribute","","",172,null],[11,"visit_macro_def","","",172,null],[11,"visit_vis","","",172,null],[11,"visit_fn_ret_ty","","",172,null],[11,"eq","","",171,null],[11,"ne","","",171,null],[11,"clone","","",171,null],[0,"print","syntex_syntax","",null,null],[0,"pp","syntex_syntax::print","This pretty-printer is a direct reimplementation of Philip Karlton's\nMesa pretty-printer, as described in appendix A of",null,null],[3,"BreakToken","syntex_syntax::print::pp","",null,null],[3,"BeginToken","","",null,null],[3,"PrintStackElem","","",null,null],[3,"Printer","","In case you do not have the paper, here is an explanation of what's going\non.",null,null],[12,"out","","",173,null],[4,"Breaks","","",null,null],[13,"Consistent","","",174,null],[13,"Inconsistent","","",174,null],[4,"Token","","",null,null],[13,"String","","",175,null],[13,"Break","","",175,null],[13,"Begin","","",175,null],[13,"End","","",175,null],[13,"Eof","","",175,null],[4,"PrintStackBreak","","",null,null],[13,"Fits","","",176,null],[13,"Broken","","",176,null],[5,"mk_printer","","",null,{"inputs":[{"name":"box"},{"name":"usize"}],"output":{"name":"printer"}}],[5,"rbox","","",null,{"inputs":[{"name":"printer"},{"name":"usize"},{"name":"breaks"}],"output":{"name":"result"}}],[5,"ibox","","",null,{"inputs":[{"name":"printer"},{"name":"usize"}],"output":{"name":"result"}}],[5,"cbox","","",null,{"inputs":[{"name":"printer"},{"name":"usize"}],"output":{"name":"result"}}],[5,"break_offset","","",null,{"inputs":[{"name":"printer"},{"name":"usize"},{"name":"isize"}],"output":{"name":"result"}}],[5,"end","","",null,{"inputs":[{"name":"printer"}],"output":{"name":"result"}}],[5,"eof","","",null,{"inputs":[{"name":"printer"}],"output":{"name":"result"}}],[5,"word","","",null,{"inputs":[{"name":"printer"},{"name":"str"}],"output":{"name":"result"}}],[5,"huge_word","","",null,{"inputs":[{"name":"printer"},{"name":"str"}],"output":{"name":"result"}}],[5,"zero_word","","",null,{"inputs":[{"name":"printer"},{"name":"str"}],"output":{"name":"result"}}],[5,"spaces","","",null,{"inputs":[{"name":"printer"},{"name":"usize"}],"output":{"name":"result"}}],[5,"zerobreak","","",null,{"inputs":[{"name":"printer"}],"output":{"name":"result"}}],[5,"space","","",null,{"inputs":[{"name":"printer"}],"output":{"name":"result"}}],[5,"hardbreak","","",null,{"inputs":[{"name":"printer"}],"output":{"name":"result"}}],[5,"hardbreak_tok_offset","","",null,{"inputs":[{"name":"isize"}],"output":{"name":"token"}}],[5,"hardbreak_tok","","",null,{"inputs":[],"output":{"name":"token"}}],[11,"eq","","",174,null],[11,"clone","","",174,null],[11,"clone","","",177,null],[11,"clone","","",178,null],[11,"clone","","",175,null],[11,"is_eof","","",175,null],[11,"is_hardbreak_tok","","",175,null],[11,"fmt","","",175,null],[11,"clone","","",176,null],[11,"clone","","",179,null],[11,"last_token","","",173,null],[11,"replace_last_token","","",173,null],[11,"pretty_print","","",173,null],[11,"check_stream","","",173,null],[11,"scan_push","","",173,null],[11,"scan_pop","","",173,null],[11,"scan_top","","",173,null],[11,"scan_pop_bottom","","",173,null],[11,"advance_right","","",173,null],[11,"advance_left","","",173,null],[11,"check_stack","","",173,null],[11,"print_newline","","",173,null],[11,"indent","","",173,null],[11,"get_top","","",173,null],[11,"print_str","","",173,null],[11,"print","","",173,null],[0,"pprust","syntex_syntax::print","",null,null],[3,"NoAnn","syntex_syntax::print::pprust","",null,null],[3,"CurrentCommentAndLiteral","","",null,null],[12,"cur_cmnt","","",180,null],[12,"cur_lit","","",180,null],[3,"State","","",null,null],[12,"s","","",181,null],[4,"AnnNode","","",null,null],[13,"NodeIdent","","",182,null],[13,"NodeName","","",182,null],[13,"NodeBlock","","",182,null],[13,"NodeItem","","",182,null],[13,"NodeSubItem","","",182,null],[13,"NodeExpr","","",182,null],[13,"NodePat","","",182,null],[5,"rust_printer","","",null,{"inputs":[{"name":"box"}],"output":{"name":"state"}}],[5,"rust_printer_annotated","","",null,{"inputs":[{"name":"box"},{"name":"ppann"}],"output":{"name":"state"}}],[5,"print_crate","","Requires you to pass an input filename and reader so that\nit can scan the input text for comments and literals to\ncopy forward.",null,{"inputs":[{"name":"codemap"},{"name":"handler"},{"name":"crate"},{"name":"string"},{"name":"read"},{"name":"box"},{"name":"ppann"},{"name":"bool"}],"output":{"name":"result"}}],[5,"to_string","","",null,{"inputs":[{"name":"f"}],"output":{"name":"string"}}],[5,"binop_to_string","","",null,{"inputs":[{"name":"binoptoken"}],"output":{"name":"str"}}],[5,"token_to_string","","",null,{"inputs":[{"name":"token"}],"output":{"name":"string"}}],[5,"ty_to_string","","",null,{"inputs":[{"name":"ty"}],"output":{"name":"string"}}],[5,"bounds_to_string","","",null,null],[5,"pat_to_string","","",null,{"inputs":[{"name":"pat"}],"output":{"name":"string"}}],[5,"arm_to_string","","",null,{"inputs":[{"name":"arm"}],"output":{"name":"string"}}],[5,"expr_to_string","","",null,{"inputs":[{"name":"expr"}],"output":{"name":"string"}}],[5,"lifetime_to_string","","",null,{"inputs":[{"name":"lifetime"}],"output":{"name":"string"}}],[5,"tt_to_string","","",null,{"inputs":[{"name":"tokentree"}],"output":{"name":"string"}}],[5,"tts_to_string","","",null,null],[5,"stmt_to_string","","",null,{"inputs":[{"name":"stmt"}],"output":{"name":"string"}}],[5,"attr_to_string","","",null,{"inputs":[{"name":"attribute"}],"output":{"name":"string"}}],[5,"item_to_string","","",null,{"inputs":[{"name":"item"}],"output":{"name":"string"}}],[5,"impl_item_to_string","","",null,{"inputs":[{"name":"implitem"}],"output":{"name":"string"}}],[5,"trait_item_to_string","","",null,{"inputs":[{"name":"traititem"}],"output":{"name":"string"}}],[5,"generics_to_string","","",null,{"inputs":[{"name":"generics"}],"output":{"name":"string"}}],[5,"where_clause_to_string","","",null,{"inputs":[{"name":"whereclause"}],"output":{"name":"string"}}],[5,"fn_block_to_string","","",null,{"inputs":[{"name":"fndecl"}],"output":{"name":"string"}}],[5,"path_to_string","","",null,{"inputs":[{"name":"path"}],"output":{"name":"string"}}],[5,"ident_to_string","","",null,{"inputs":[{"name":"ident"}],"output":{"name":"string"}}],[5,"fun_to_string","","",null,{"inputs":[{"name":"fndecl"},{"name":"unsafety"},{"name":"constness"},{"name":"ident"},{"name":"generics"}],"output":{"name":"string"}}],[5,"block_to_string","","",null,{"inputs":[{"name":"block"}],"output":{"name":"string"}}],[5,"meta_item_to_string","","",null,{"inputs":[{"name":"metaitem"}],"output":{"name":"string"}}],[5,"attribute_to_string","","",null,{"inputs":[{"name":"attribute"}],"output":{"name":"string"}}],[5,"lit_to_string","","",null,{"inputs":[{"name":"lit"}],"output":{"name":"string"}}],[5,"variant_to_string","","",null,{"inputs":[{"name":"variant"}],"output":{"name":"string"}}],[5,"arg_to_string","","",null,{"inputs":[{"name":"arg"}],"output":{"name":"string"}}],[5,"mac_to_string","","",null,{"inputs":[{"name":"mac"}],"output":{"name":"string"}}],[5,"visibility_qualified","","",null,{"inputs":[{"name":"visibility"},{"name":"str"}],"output":{"name":"string"}}],[17,"INDENT_UNIT","","",null,null],[17,"DEFAULT_COLUMNS","","",null,null],[8,"PpAnn","","",null,null],[11,"pre","","",183,null],[11,"post","","",183,null],[8,"PrintState","","",null,null],[10,"writer","","",184,null],[10,"boxes","","",184,null],[10,"comments","","",184,null],[10,"cur_cmnt_and_lit","","",184,null],[10,"literals","","",184,null],[11,"word_space","","",184,null],[11,"popen","","",184,null],[11,"pclose","","",184,null],[11,"is_begin","","",184,null],[11,"is_end","","",184,null],[11,"is_bol","","",184,null],[11,"hardbreak_if_not_bol","","",184,null],[11,"rbox","","",184,null],[11,"ibox","","",184,null],[11,"end","","",184,null],[11,"commasep","","",184,null],[11,"next_lit","","",184,null],[11,"maybe_print_comment","","",184,null],[11,"print_comment","","",184,null],[11,"next_comment","","",184,null],[11,"print_literal","","",184,null],[11,"print_string","","",184,null],[11,"print_inner_attributes","","",184,null],[11,"print_inner_attributes_no_trailing_hardbreak","","",184,null],[11,"print_outer_attributes","","",184,null],[11,"print_inner_attributes_inline","","",184,null],[11,"print_outer_attributes_inline","","",184,null],[11,"print_either_attributes","","",184,null],[11,"print_attribute","","",184,null],[11,"print_attribute_inline","","",184,null],[11,"print_meta_item","","",184,null],[11,"space_if_not_bol","","",184,null],[11,"nbsp","","",184,null],[11,"clone","","",185,null],[11,"clone","","",180,null],[11,"new_from_input","","",181,{"inputs":[{"name":"codemap"},{"name":"handler"},{"name":"string"},{"name":"read"},{"name":"box"},{"name":"ppann"},{"name":"bool"}],"output":{"name":"state"}}],[11,"new","","",181,{"inputs":[{"name":"codemap"},{"name":"box"},{"name":"ppann"},{"name":"option"},{"name":"option"}],"output":{"name":"state"}}],[11,"writer","","",181,null],[11,"boxes","","",181,null],[11,"comments","","",181,null],[11,"cur_cmnt_and_lit","","",181,null],[11,"literals","","",181,null],[11,"cbox","","",181,null],[11,"word_nbsp","","",181,null],[11,"head","","",181,null],[11,"bopen","","",181,null],[11,"bclose_","","",181,null],[11,"bclose_maybe_open","","",181,null],[11,"bclose","","",181,null],[11,"in_cbox","","",181,null],[11,"break_offset_if_not_bol","","",181,null],[11,"synth_comment","","",181,null],[11,"commasep_cmnt","","",181,null],[11,"commasep_exprs","","",181,null],[11,"print_mod","","",181,null],[11,"print_foreign_mod","","",181,null],[11,"print_opt_lifetime","","",181,null],[11,"print_type","","",181,null],[11,"print_foreign_item","","",181,null],[11,"print_item","","Pretty-print an item",181,null],[11,"print_enum_def","","",181,null],[11,"print_variants","","",181,null],[11,"print_visibility","","",181,null],[11,"print_struct","","",181,null],[11,"print_tt","","This doesn't deserve to be called "pretty" printing, but it should be\nmeaning-preserving. A quick hack that might help would be to look at the\nspans embedded in the TTs to decide where to put spaces and newlines.\nBut it'd be better to parse these according to the grammar of the\nappropriate macro, transcribe back into the grammar we just parsed from,\nand then pretty-print the resulting AST nodes (so, e.g., we print\nexpression arguments as expressions). It can be done! I think.",181,null],[11,"print_tts","","",181,null],[11,"print_variant","","",181,null],[11,"print_method_sig","","",181,null],[11,"print_trait_item","","",181,null],[11,"print_impl_item","","",181,null],[11,"print_stmt","","",181,null],[11,"print_block","","",181,null],[11,"print_block_unclosed","","",181,null],[11,"print_block_unclosed_with_attrs","","",181,null],[11,"print_block_unclosed_indent","","",181,null],[11,"print_block_with_attrs","","",181,null],[11,"print_block_maybe_unclosed","","",181,null],[11,"print_if","","",181,null],[11,"print_if_let","","",181,null],[11,"print_mac","","",181,null],[11,"check_expr_bin_needs_paren","","",181,null],[11,"print_expr_maybe_paren","","",181,null],[11,"print_expr","","",181,null],[11,"print_local_decl","","",181,null],[11,"print_ident","","",181,null],[11,"print_usize","","",181,null],[11,"print_name","","",181,null],[11,"print_for_decl","","",181,null],[11,"print_pat","","",181,null],[11,"print_fn","","",181,null],[11,"print_fn_args_and_ret","","",181,null],[11,"print_fn_block_args","","",181,null],[11,"print_capture_clause","","",181,null],[11,"print_bounds","","",181,null],[11,"print_lifetime","","",181,null],[11,"print_lifetime_bounds","","",181,null],[11,"print_generics","","",181,null],[11,"print_ty_param","","",181,null],[11,"print_where_clause","","",181,null],[11,"print_view_path","","",181,null],[11,"print_mutability","","",181,null],[11,"print_mt","","",181,null],[11,"print_arg","","",181,null],[11,"print_fn_output","","",181,null],[11,"print_ty_fn","","",181,null],[11,"maybe_print_trailing_comment","","",181,null],[11,"print_remaining_comments","","",181,null],[11,"print_opt_abi_and_extern_if_nondefault","","",181,null],[11,"print_extern_opt_abi","","",181,null],[11,"print_fn_header_info","","",181,null],[11,"print_unsafety","","",181,null],[0,"ext","syntex_syntax","",null,null],[0,"base","syntex_syntax::ext","",null,null],[3,"MacEager","syntex_syntax::ext::base","`MacResult` implementation for the common case where you've already\nbuilt each form of AST that you might return.",null,null],[12,"expr","","",186,null],[12,"pat","","",186,null],[12,"items","","",186,null],[12,"impl_items","","",186,null],[12,"trait_items","","",186,null],[12,"stmts","","",186,null],[12,"ty","","",186,null],[3,"DummyResult","","Fill-in macro expansion result, to allow compilation to continue\nafter hitting errors.",null,null],[3,"BlockInfo","","",null,null],[12,"macros_escape","","Should macros escape from this scope?",187,null],[3,"DummyMacroLoader","","",null,null],[3,"ExtCtxt","","One of these is made during expansion and incrementally updated as we go;\nwhen a macro expansion occurs, the resulting nodes have the backtrace()\n-> expn_info of their expansion context stored into their span.",null,null],[12,"parse_sess","","",188,null],[12,"cfg","","",188,null],[12,"backtrace","","",188,null],[12,"ecfg","","",188,null],[12,"crate_root","","",188,null],[12,"loader","","",188,null],[12,"mod_path","","",188,null],[12,"exported_macros","","",188,null],[12,"syntax_env","","",188,null],[12,"recursion_count","","",188,null],[12,"filename","","",188,null],[12,"mod_path_stack","","",188,null],[12,"in_block","","",188,null],[3,"SyntaxEnv","","In order to have some notion of scoping for macros,\nwe want to implement the notion of a transformation\nenvironment.",null,null],[12,"names","","All bang-style macro/extension names\nencountered so far; to be used for diagnostics in resolve",189,null],[4,"Annotatable","","",null,null],[13,"Item","","",190,null],[13,"TraitItem","","",190,null],[13,"ImplItem","","",190,null],[4,"SyntaxExtension","","An enum representing the different kinds of syntax extensions.",null,null],[13,"MultiDecorator","","A syntax extension that is attached to an item and creates new items\nbased upon it.",191,null],[13,"MultiModifier","","A syntax extension that is attached to an item and modifies it\nin-place. More flexible version than Modifier.",191,null],[13,"NormalTT","","A normal, function-like syntax extension.",191,null],[13,"IdentTT","","A function-like syntax extension that has an extra ident before\nthe block.",191,null],[13,"MacroRulesTT","","Represents `macro_rules!` itself.",191,null],[5,"expr_to_string","","Extract a string literal from the macro expanded version of `expr`,\nemitting `err_msg` if `expr` is not a string literal. This does not stop\ncompilation on error, merely emits a non-fatal error and returns None.",null,{"inputs":[{"name":"extctxt"},{"name":"p"},{"name":"str"}],"output":{"name":"option"}}],[5,"check_zero_tts","","Non-fatally assert that `tts` is empty. Note that this function\nreturns even when `tts` is non-empty, macros that *need* to stop\ncompilation should call\n`cx.parse_sess.span_diagnostic.abort_if_errors()` (this should be\ndone as rarely as possible).",null,null],[5,"get_single_str_from_tts","","Extract the string literal from the first token of `tts`. If this\nis not a string literal, emit an error and return None.",null,null],[5,"get_exprs_from_tts","","Extract comma-separated expressions from `tts`. If there is a\nparsing error, emit a non-fatal error and return None.",null,null],[6,"MacroExpanderFn","","",null,null],[6,"IdentMacroExpanderFn","","",null,null],[6,"NamedSyntaxExtension","","",null,null],[8,"MultiItemDecorator","","",null,null],[10,"expand","","",192,null],[8,"MultiItemModifier","","",null,null],[10,"expand","","",193,null],[8,"TTMacroExpander","","Represents a thing that maps token trees to Macro Results",null,null],[10,"expand","","",194,null],[8,"IdentMacroExpander","","",null,null],[10,"expand","","",195,null],[8,"MacResult","","The result of a macro expansion. The return values of the various\nmethods are spliced into the AST at the callsite of the macro.",null,null],[11,"make_expr","","Create an expression.",196,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_items","","Create zero or more items.",196,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_impl_items","","Create zero or more impl items.",196,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_trait_items","","Create zero or more trait items.",196,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_pat","","Create a pattern.",196,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_stmts","","Create zero or more statements.",196,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_ty","","",196,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[8,"MacroLoader","","",null,null],[10,"load_crate","","",197,null],[11,"clone","","",190,null],[11,"fmt","","",190,null],[11,"attrs","","",190,null],[11,"map_attrs","","",190,null],[11,"attrs","","",190,null],[11,"fold_attrs","","",190,null],[11,"expect_item","","",190,null],[11,"map_item_or","","",190,null],[11,"expect_trait_item","","",190,null],[11,"expect_impl_item","","",190,null],[11,"fold_with","","",190,null],[11,"into","","",190,null],[11,"default","","",186,{"inputs":[],"output":{"name":"maceager"}}],[11,"expr","","",186,{"inputs":[{"name":"p"}],"output":{"name":"box"}}],[11,"pat","","",186,{"inputs":[{"name":"p"}],"output":{"name":"box"}}],[11,"items","","",186,{"inputs":[{"name":"smallvector"}],"output":{"name":"box"}}],[11,"impl_items","","",186,{"inputs":[{"name":"smallvector"}],"output":{"name":"box"}}],[11,"trait_items","","",186,{"inputs":[{"name":"smallvector"}],"output":{"name":"box"}}],[11,"stmts","","",186,{"inputs":[{"name":"smallvector"}],"output":{"name":"box"}}],[11,"ty","","",186,{"inputs":[{"name":"p"}],"output":{"name":"box"}}],[11,"make_expr","","",186,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_items","","",186,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_impl_items","","",186,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_trait_items","","",186,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_stmts","","",186,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_pat","","",186,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_ty","","",186,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"clone","","",198,null],[11,"any","","Create a default MacResult that can be anything.",198,{"inputs":[{"name":"span"}],"output":{"name":"box"}}],[11,"expr","","Create a default MacResult that can only be an expression.",198,{"inputs":[{"name":"span"}],"output":{"name":"box"}}],[11,"raw_expr","","A plain dummy expression.",198,{"inputs":[{"name":"span"}],"output":{"name":"p"}}],[11,"raw_pat","","A plain dummy pattern.",198,{"inputs":[{"name":"span"}],"output":{"name":"pat"}}],[11,"raw_ty","","",198,{"inputs":[{"name":"span"}],"output":{"name":"p"}}],[11,"make_expr","","",198,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_pat","","",198,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_items","","",198,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_impl_items","","",198,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_trait_items","","",198,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_stmts","","",198,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_ty","","",198,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"new","","",187,{"inputs":[],"output":{"name":"blockinfo"}}],[11,"load_crate","","",199,null],[11,"new","","",188,{"inputs":[{"name":"parsesess"},{"name":"crateconfig"},{"name":"expansionconfig"},{"name":"macroloader"}],"output":{"name":"extctxt"}}],[11,"expander","","Returns a `Folder` for deeply expanding all macros in an AST node.",188,null],[11,"new_parser_from_tts","","",188,null],[11,"codemap","","",188,null],[11,"parse_sess","","",188,null],[11,"cfg","","",188,null],[11,"call_site","","",188,null],[11,"backtrace","","",188,null],[11,"expansion_cause","","Returns span for the macro which originally caused the current expansion to happen.",188,null],[11,"mod_push","","",188,null],[11,"mod_pop","","",188,null],[11,"mod_path","","",188,null],[11,"bt_push","","",188,null],[11,"bt_pop","","",188,null],[11,"insert_macro","","",188,null],[11,"struct_span_warn","","",188,null],[11,"struct_span_err","","",188,null],[11,"struct_span_fatal","","",188,null],[11,"span_fatal","","Emit `msg` attached to `sp`, and stop compilation immediately.",188,null],[11,"span_err","","Emit `msg` attached to `sp`, without immediately stopping\ncompilation.",188,null],[11,"span_warn","","",188,null],[11,"span_unimpl","","",188,null],[11,"span_bug","","",188,null],[11,"bug","","",188,null],[11,"trace_macros","","",188,null],[11,"set_trace_macros","","",188,null],[11,"ident_of","","",188,null],[11,"std_path","","",188,null],[11,"name_of","","",188,null],[11,"suggest_macro_name","","",188,null],[11,"push_frame","","",189,null],[11,"pop_frame","","",189,null],[11,"find","","",189,null],[11,"insert","","",189,null],[11,"info","","",189,null],[11,"is_crate_root","","",189,null],[0,"build","syntex_syntax::ext","",null,null],[8,"AstBuilder","syntex_syntax::ext::build","",null,null],[10,"path","","",200,null],[10,"path_ident","","",200,null],[10,"path_global","","",200,null],[10,"path_all","","",200,null],[10,"qpath","","",200,null],[10,"qpath_all","","",200,null],[10,"ty_mt","","",200,null],[10,"ty","","",200,null],[10,"ty_path","","",200,null],[10,"ty_sum","","",200,null],[10,"ty_ident","","",200,null],[10,"ty_rptr","","",200,null],[10,"ty_ptr","","",200,null],[10,"ty_option","","",200,null],[10,"ty_infer","","",200,null],[10,"ty_vars","","",200,null],[10,"ty_vars_global","","",200,null],[10,"typaram","","",200,null],[10,"trait_ref","","",200,null],[10,"poly_trait_ref","","",200,null],[10,"typarambound","","",200,null],[10,"lifetime","","",200,null],[10,"lifetime_def","","",200,null],[10,"stmt_expr","","",200,null],[10,"stmt_semi","","",200,null],[10,"stmt_let","","",200,null],[10,"stmt_let_typed","","",200,null],[10,"stmt_item","","",200,null],[10,"block","","",200,null],[10,"block_expr","","",200,null],[10,"expr","","",200,null],[10,"expr_path","","",200,null],[10,"expr_qpath","","",200,null],[10,"expr_ident","","",200,null],[10,"expr_self","","",200,null],[10,"expr_binary","","",200,null],[10,"expr_deref","","",200,null],[10,"expr_unary","","",200,null],[10,"expr_addr_of","","",200,null],[10,"expr_mut_addr_of","","",200,null],[10,"expr_field_access","","",200,null],[10,"expr_tup_field_access","","",200,null],[10,"expr_call","","",200,null],[10,"expr_call_ident","","",200,null],[10,"expr_call_global","","",200,null],[10,"expr_method_call","","",200,null],[10,"expr_block","","",200,null],[10,"expr_cast","","",200,null],[10,"field_imm","","",200,null],[10,"expr_struct","","",200,null],[10,"expr_struct_ident","","",200,null],[10,"expr_lit","","",200,null],[10,"expr_usize","","",200,null],[10,"expr_isize","","",200,null],[10,"expr_u8","","",200,null],[10,"expr_u32","","",200,null],[10,"expr_bool","","",200,null],[10,"expr_vec","","",200,null],[10,"expr_vec_ng","","",200,null],[10,"expr_vec_slice","","",200,null],[10,"expr_str","","",200,null],[10,"expr_some","","",200,null],[10,"expr_none","","",200,null],[10,"expr_break","","",200,null],[10,"expr_tuple","","",200,null],[10,"expr_fail","","",200,null],[10,"expr_unreachable","","",200,null],[10,"expr_ok","","",200,null],[10,"expr_err","","",200,null],[10,"expr_try","","",200,null],[10,"pat","","",200,null],[10,"pat_wild","","",200,null],[10,"pat_lit","","",200,null],[10,"pat_ident","","",200,null],[10,"pat_ident_binding_mode","","",200,null],[10,"pat_enum","","",200,null],[10,"pat_struct","","",200,null],[10,"pat_tuple","","",200,null],[10,"pat_some","","",200,null],[10,"pat_none","","",200,null],[10,"pat_ok","","",200,null],[10,"pat_err","","",200,null],[10,"arm","","",200,null],[10,"arm_unreachable","","",200,null],[10,"expr_match","","",200,null],[10,"expr_if","","",200,null],[10,"expr_loop","","",200,null],[10,"lambda_fn_decl","","",200,null],[10,"lambda","","",200,null],[10,"lambda0","","",200,null],[10,"lambda1","","",200,null],[10,"lambda_expr","","",200,null],[10,"lambda_expr_0","","",200,null],[10,"lambda_expr_1","","",200,null],[10,"lambda_stmts","","",200,null],[10,"lambda_stmts_0","","",200,null],[10,"lambda_stmts_1","","",200,null],[10,"item","","",200,null],[10,"arg","","",200,null],[10,"fn_decl","","",200,null],[10,"item_fn_poly","","",200,null],[10,"item_fn","","",200,null],[10,"variant","","",200,null],[10,"item_enum_poly","","",200,null],[10,"item_enum","","",200,null],[10,"item_struct_poly","","",200,null],[10,"item_struct","","",200,null],[10,"item_mod","","",200,null],[10,"item_static","","",200,null],[10,"item_const","","",200,null],[10,"item_ty_poly","","",200,null],[10,"item_ty","","",200,null],[10,"attribute","","",200,null],[10,"meta_word","","",200,null],[10,"meta_list","","",200,null],[10,"meta_name_value","","",200,null],[10,"item_use","","",200,null],[10,"item_use_simple","","",200,null],[10,"item_use_simple_","","",200,null],[10,"item_use_list","","",200,null],[10,"item_use_glob","","",200,null],[11,"path","syntex_syntax::ext::base","",188,null],[11,"path_ident","","",188,null],[11,"path_global","","",188,null],[11,"path_all","","",188,null],[11,"qpath","","Constructs a qualified path.",188,null],[11,"qpath_all","","Constructs a qualified path.",188,null],[11,"ty_mt","","",188,null],[11,"ty","","",188,null],[11,"ty_path","","",188,null],[11,"ty_sum","","",188,null],[11,"ty_ident","","",188,null],[11,"ty_rptr","","",188,null],[11,"ty_ptr","","",188,null],[11,"ty_option","","",188,null],[11,"ty_infer","","",188,null],[11,"typaram","","",188,null],[11,"ty_vars","","",188,null],[11,"ty_vars_global","","",188,null],[11,"trait_ref","","",188,null],[11,"poly_trait_ref","","",188,null],[11,"typarambound","","",188,null],[11,"lifetime","","",188,null],[11,"lifetime_def","","",188,null],[11,"stmt_expr","","",188,null],[11,"stmt_semi","","",188,null],[11,"stmt_let","","",188,null],[11,"stmt_let_typed","","",188,null],[11,"stmt_item","","",188,null],[11,"block_expr","","",188,null],[11,"block","","",188,null],[11,"expr","","",188,null],[11,"expr_path","","",188,null],[11,"expr_qpath","","Constructs a QPath expression.",188,null],[11,"expr_ident","","",188,null],[11,"expr_self","","",188,null],[11,"expr_binary","","",188,null],[11,"expr_deref","","",188,null],[11,"expr_unary","","",188,null],[11,"expr_field_access","","",188,null],[11,"expr_tup_field_access","","",188,null],[11,"expr_addr_of","","",188,null],[11,"expr_mut_addr_of","","",188,null],[11,"expr_call","","",188,null],[11,"expr_call_ident","","",188,null],[11,"expr_call_global","","",188,null],[11,"expr_method_call","","",188,null],[11,"expr_block","","",188,null],[11,"field_imm","","",188,null],[11,"expr_struct","","",188,null],[11,"expr_struct_ident","","",188,null],[11,"expr_lit","","",188,null],[11,"expr_usize","","",188,null],[11,"expr_isize","","",188,null],[11,"expr_u32","","",188,null],[11,"expr_u8","","",188,null],[11,"expr_bool","","",188,null],[11,"expr_vec","","",188,null],[11,"expr_vec_ng","","",188,null],[11,"expr_vec_slice","","",188,null],[11,"expr_str","","",188,null],[11,"expr_cast","","",188,null],[11,"expr_some","","",188,null],[11,"expr_none","","",188,null],[11,"expr_break","","",188,null],[11,"expr_tuple","","",188,null],[11,"expr_fail","","",188,null],[11,"expr_unreachable","","",188,null],[11,"expr_ok","","",188,null],[11,"expr_err","","",188,null],[11,"expr_try","","",188,null],[11,"pat","","",188,null],[11,"pat_wild","","",188,null],[11,"pat_lit","","",188,null],[11,"pat_ident","","",188,null],[11,"pat_ident_binding_mode","","",188,null],[11,"pat_enum","","",188,null],[11,"pat_struct","","",188,null],[11,"pat_tuple","","",188,null],[11,"pat_some","","",188,null],[11,"pat_none","","",188,null],[11,"pat_ok","","",188,null],[11,"pat_err","","",188,null],[11,"arm","","",188,null],[11,"arm_unreachable","","",188,null],[11,"expr_match","","",188,null],[11,"expr_if","","",188,null],[11,"expr_loop","","",188,null],[11,"lambda_fn_decl","","",188,null],[11,"lambda","","",188,null],[11,"lambda0","","",188,null],[11,"lambda1","","",188,null],[11,"lambda_expr","","",188,null],[11,"lambda_expr_0","","",188,null],[11,"lambda_expr_1","","",188,null],[11,"lambda_stmts","","",188,null],[11,"lambda_stmts_0","","",188,null],[11,"lambda_stmts_1","","",188,null],[11,"arg","","",188,null],[11,"fn_decl","","",188,null],[11,"item","","",188,null],[11,"item_fn_poly","","",188,null],[11,"item_fn","","",188,null],[11,"variant","","",188,null],[11,"item_enum_poly","","",188,null],[11,"item_enum","","",188,null],[11,"item_struct","","",188,null],[11,"item_struct_poly","","",188,null],[11,"item_mod","","",188,null],[11,"item_static","","",188,null],[11,"item_const","","",188,null],[11,"item_ty_poly","","",188,null],[11,"item_ty","","",188,null],[11,"attribute","","",188,null],[11,"meta_word","","",188,null],[11,"meta_list","","",188,null],[11,"meta_name_value","","",188,null],[11,"item_use","","",188,null],[11,"item_use_simple","","",188,null],[11,"item_use_simple_","","",188,null],[11,"item_use_list","","",188,null],[11,"item_use_glob","","",188,null],[0,"decorator","syntex_syntax::ext","",null,null],[5,"expand_annotatable","syntex_syntax::ext::decorator","",null,{"inputs":[{"name":"annotatable"},{"name":"macroexpander"}],"output":{"name":"smallvector"}}],[0,"env","syntex_syntax::ext","",null,null],[5,"expand_option_env","syntex_syntax::ext::env","",null,null],[5,"expand_env","","",null,null],[0,"expand","syntex_syntax::ext","",null,null],[3,"MacroExpander","syntex_syntax::ext::expand","A tree-folder that performs macro expansion",null,null],[12,"cx","","",201,null],[12,"single_step","","",201,null],[12,"keep_macs","","",201,null],[3,"ExpansionConfig","","",null,null],[12,"crate_name","","",202,null],[12,"features","","",202,null],[12,"recursion_limit","","",202,null],[12,"trace_mac","","",202,null],[12,"should_test","","",202,null],[5,"expand_expr","","",null,{"inputs":[{"name":"expr"},{"name":"macroexpander"}],"output":{"name":"p"}}],[5,"expand_item","","",null,{"inputs":[{"name":"p"},{"name":"macroexpander"}],"output":{"name":"smallvector"}}],[5,"expand_multi_modified","","",null,{"inputs":[{"name":"annotatable"},{"name":"macroexpander"}],"output":{"name":"smallvector"}}],[5,"expand_type","","",null,{"inputs":[{"name":"p"},{"name":"macroexpander"}],"output":{"name":"p"}}],[5,"expand_crate","","",null,{"inputs":[{"name":"extctxt"},{"name":"vec"},{"name":"crate"}],"output":{"name":"crate"}}],[5,"expand_crate_with_expander","","",null,{"inputs":[{"name":"macroexpander"},{"name":"vec"},{"name":"crate"}],"output":{"name":"crate"}}],[11,"new","","",201,{"inputs":[{"name":"extctxt"},{"name":"bool"},{"name":"bool"}],"output":{"name":"macroexpander"}}],[11,"fold_crate","","",201,null],[11,"fold_expr","","",201,null],[11,"fold_opt_expr","","",201,null],[11,"fold_pat","","",201,null],[11,"fold_item","","",201,null],[11,"fold_stmt","","",201,null],[11,"fold_block","","",201,null],[11,"fold_trait_item","","",201,null],[11,"fold_impl_item","","",201,null],[11,"fold_ty","","",201,null],[11,"default","","",202,{"inputs":[{"name":"string"}],"output":{"name":"expansionconfig"}}],[11,"enable_quotes","","",202,null],[11,"enable_asm","","",202,null],[11,"enable_log_syntax","","",202,null],[11,"enable_concat_idents","","",202,null],[11,"enable_trace_macros","","",202,null],[11,"enable_allow_internal_unstable","","",202,null],[11,"enable_custom_derive","","",202,null],[11,"enable_pushpop_unsafe","","",202,null],[0,"hygiene","syntex_syntax::ext","Machinery for hygienic macros, inspired by the MTWT[1] paper.",null,null],[3,"SyntaxContext","syntex_syntax::ext::hygiene","A SyntaxContext represents a chain of macro expansions (represented by marks).",null,null],[12,"0","","",203,null],[3,"SyntaxContextData","","",null,null],[12,"outer_mark","","",204,null],[12,"prev_ctxt","","",204,null],[3,"Mark","","A mark represents a unique id associated with a macro expansion.",null,null],[5,"reset_hygiene_data","","",null,{"inputs":[],"output":null}],[11,"default","","",203,{"inputs":[],"output":{"name":"syntaxcontext"}}],[11,"decode","","",203,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",203,null],[11,"hash","","",203,null],[11,"eq","","",203,null],[11,"ne","","",203,null],[11,"clone","","",203,null],[11,"clone","","",204,null],[11,"default","","",205,{"inputs":[],"output":{"name":"mark"}}],[11,"fmt","","",205,null],[11,"hash","","",205,null],[11,"eq","","",205,null],[11,"ne","","",205,null],[11,"clone","","",205,null],[11,"fresh","","",205,{"inputs":[],"output":{"name":"self"}}],[11,"empty","","",203,{"inputs":[],"output":{"name":"self"}}],[11,"data","","",203,null],[11,"apply_mark","","Extend a syntax context with a given mark",203,null],[11,"source","","If `ident` is macro expanded, return the source ident from the macro definition\nand the mark of the expansion that created the macro definition.",203,null],[11,"fmt","","",203,null],[0,"proc_macro_shim","syntex_syntax::ext","This is a shim file to ease the transition to the final procedural macro interface for\nMacros 2.0. It currently exposes the `libsyntax` operations that the quasiquoter's\noutput needs to compile correctly, along with the following operators:",null,null],[5,"build_block_emitter","syntex_syntax::ext::proc_macro_shim","Take a `ExtCtxt`, `Span`, and `TokenStream`, and produce a Macro Result that parses\nthe TokenStream as a block and returns it as an `Expr`.",null,{"inputs":[{"name":"extctxt"},{"name":"span"},{"name":"tokenstream"}],"output":{"name":"box"}}],[0,"prelude","","",null,null],[17,"DUMMY_SP","syntex_syntax::ext::proc_macro_shim::prelude","",null,null],[3,"Span","","Spans represent a region of code, used for error reporting. Positions in spans\nare *absolute* positions from the beginning of the codemap, not positions\nrelative to FileMaps. Methods on the CodeMap can be used to relate spans back\nto the original source.\nYou must be careful if the span crosses more than one file - you will not be\nable to use many of the functions on spans in codemap and you cannot assume\nthat the length of the span = hi - lo; there may be space in the BytePos\nrange between files.",null,null],[12,"lo","","",206,null],[12,"hi","","",206,null],[12,"expn_id","","Information about where the macro came from, if this piece of\ncode was created by a macro expansion.",206,null],[0,"quote","syntex_syntax::ext","",null,null],[5,"parse_expr_panic","syntex_syntax::ext::quote","",null,{"inputs":[{"name":"parser"}],"output":{"name":"p"}}],[5,"parse_item_panic","","",null,{"inputs":[{"name":"parser"}],"output":{"name":"option"}}],[5,"parse_pat_panic","","",null,{"inputs":[{"name":"parser"}],"output":{"name":"p"}}],[5,"parse_arm_panic","","",null,{"inputs":[{"name":"parser"}],"output":{"name":"arm"}}],[5,"parse_ty_panic","","",null,{"inputs":[{"name":"parser"}],"output":{"name":"p"}}],[5,"parse_stmt_panic","","",null,{"inputs":[{"name":"parser"}],"output":{"name":"option"}}],[5,"parse_attribute_panic","","",null,{"inputs":[{"name":"parser"},{"name":"bool"}],"output":{"name":"attribute"}}],[5,"parse_arg_panic","","",null,{"inputs":[{"name":"parser"}],"output":{"name":"arg"}}],[5,"parse_block_panic","","",null,{"inputs":[{"name":"parser"}],"output":{"name":"p"}}],[5,"parse_meta_item_panic","","",null,{"inputs":[{"name":"parser"}],"output":{"name":"p"}}],[5,"parse_path_panic","","",null,{"inputs":[{"name":"parser"},{"name":"pathstyle"}],"output":{"name":"path"}}],[5,"expand_quote_tokens","","",null,null],[5,"expand_quote_expr","","",null,null],[5,"expand_quote_item","","",null,null],[5,"expand_quote_pat","","",null,null],[5,"expand_quote_arm","","",null,null],[5,"expand_quote_ty","","",null,null],[5,"expand_quote_stmt","","",null,null],[5,"expand_quote_attr","","",null,null],[5,"expand_quote_arg","","",null,null],[5,"expand_quote_block","","",null,null],[5,"expand_quote_meta_item","","",null,null],[5,"expand_quote_path","","",null,null],[5,"expand_quote_matcher","","",null,null],[0,"rt","","Quasiquoting works via token trees.",null,null],[3,"BytePos","syntex_syntax::ext::quote::rt","A byte offset. Keep this small (currently 32-bits), as AST contains\na lot of them.",null,null],[12,"0","","",207,null],[3,"Span","","Spans represent a region of code, used for error reporting. Positions in spans\nare *absolute* positions from the beginning of the codemap, not positions\nrelative to FileMaps. Methods on the CodeMap can be used to relate spans back\nto the original source.\nYou must be careful if the span crosses more than one file - you will not be\nable to use many of the functions on spans in codemap and you cannot assume\nthat the length of the span = hi - lo; there may be space in the BytePos\nrange between files.",null,null],[12,"lo","","",206,null],[12,"hi","","",206,null],[12,"expn_id","","Information about where the macro came from, if this piece of\ncode was created by a macro expansion.",206,null],[17,"DUMMY_SP","","",null,null],[8,"ToTokens","","",null,null],[10,"to_tokens","","",208,null],[8,"ExtParseUtils","","",null,null],[10,"parse_item","","",209,null],[10,"parse_expr","","",209,null],[10,"parse_stmt","","",209,null],[10,"parse_tts","","",209,null],[11,"to_tokens","syntex_syntax::tokenstream","",166,null],[11,"to_tokens","syntex_syntax::codemap","",118,null],[11,"to_tokens","syntex_syntax::ast","",18,null],[11,"to_tokens","","",21,null],[11,"to_tokens","","",47,null],[11,"to_tokens","","",32,null],[11,"to_tokens","","",26,null],[11,"to_tokens","","",27,null],[11,"to_tokens","syntex_syntax::ptr","",162,null],[11,"to_tokens","syntex_syntax::ast","",45,null],[11,"to_tokens","syntex_syntax::ptr","",162,null],[11,"to_tokens","syntex_syntax::ast","",44,null],[11,"to_tokens","","",35,null],[11,"to_tokens","syntex_syntax::ptr","",162,null],[11,"to_tokens","","",162,null],[11,"to_tokens","syntex_syntax::ast","",37,null],[11,"to_tokens","","",51,null],[11,"to_tokens","syntex_syntax::ptr","",162,null],[11,"to_tokens","","",162,null],[11,"to_tokens","syntex_syntax::ext::quote::rt","",115,null],[11,"to_tokens","","",210,null],[11,"parse_item","syntex_syntax::ext::base","",188,null],[11,"parse_stmt","","",188,null],[11,"parse_expr","","",188,null],[11,"parse_tts","","",188,null],[0,"source_util","syntex_syntax::ext","",null,null],[5,"expand_line","syntex_syntax::ext::source_util","line!(): expands to the current line number",null,null],[5,"expand_column","","",null,null],[5,"expand_file","","file!(): expands to the current filename */\nThe filemap (`loc.file`) contains a bunch more information we could spit\nout if we wanted.",null,null],[5,"expand_stringify","","",null,null],[5,"expand_mod","","",null,null],[5,"expand_include","","include! : parse the given file as an expr\nThis is generally a bad idea because it's going to behave\nunhygienically.",null,null],[5,"expand_include_str","","",null,null],[5,"expand_include_bytes","","",null,null],[0,"tt","syntex_syntax::ext","",null,null],[0,"transcribe","syntex_syntax::ext::tt","",null,null],[3,"TtReader","syntex_syntax::ext::tt::transcribe","",null,null],[12,"sp_diag","","",211,null],[12,"cur_tok","","",211,null],[12,"cur_span","","",211,null],[12,"desugar_doc_comments","","Transform doc comments. Only useful in macro invocations",211,null],[12,"fatal_errs","","",211,null],[5,"new_tt_reader","","This can do Macro-By-Example transcription. On the other hand, if\n`src` contains no `TokenTree::Sequence`s, `MatchNt`s or `SubstNt`s, `interp` can\n(and should) be None.",null,{"inputs":[{"name":"handler"},{"name":"option"},{"name":"option"},{"name":"vec"}],"output":{"name":"ttreader"}}],[5,"new_tt_reader_with_doc_flag","","The extra `desugar_doc_comments` flag enables reading doc comments\nlike any other attribute which consists of `meta` and surrounding #[ ] tokens.",null,{"inputs":[{"name":"handler"},{"name":"option"},{"name":"option"},{"name":"vec"},{"name":"bool"}],"output":{"name":"ttreader"}}],[5,"tt_next_token","","Return the next token from the TtReader.\nEFFECT: advances the reader's token field",null,{"inputs":[{"name":"ttreader"}],"output":{"name":"tokenandspan"}}],[11,"clone","","",211,null],[0,"macro_parser","syntex_syntax::ext::tt","This is an Earley-like parser, without support for in-grammar nonterminals,\nonly by calling out to the main rust parser for named nonterminals (which it\ncommits to fully when it hits one in a grammar). This means that there are no\ncompleter or predictor rules, and therefore no need to store one column per\ntoken: instead, there's a set of current Earley items and a set of next\nones. Instead of NTs, we have a special case for Kleene star. The big-O, in\npathological cases, is worse than traditional Earley parsing, but it's an\neasier fit for Macro-by-Example-style rules, and I think the overhead is\nlower. (In order to prevent the pathological case, we'd need to lazily\nconstruct the resulting `NamedMatch`es at the very end. It'd be a pain,\nand require more memory to keep around old items, but it would also save\noverhead)",null,null],[3,"MatcherPos","syntex_syntax::ext::tt::macro_parser","",null,null],[4,"NamedMatch","","NamedMatch is a pattern-match result for a single token::MATCH_NONTERMINAL:\nso it is associated with a single ident in a parse, and all\n`MatchedNonterminal`s in the NamedMatch have the same nonterminal type\n(expr, item, etc). Each leaf in a single NamedMatch corresponds to a\nsingle token::MATCH_NONTERMINAL in the TokenTree that produced it.",null,null],[13,"MatchedSeq","","",212,null],[13,"MatchedNonterminal","","",212,null],[4,"ParseResult","","",null,null],[13,"Success","","",213,null],[13,"Failure","","Arm failed to match",213,null],[13,"Error","","Fatal error (malformed macro?). Abort compilation.",213,null],[5,"count_names","","",null,null],[5,"initial_matcher_pos","","",null,{"inputs":[{"name":"rc"},{"name":"option"},{"name":"bytepos"}],"output":{"name":"box"}}],[5,"nameize","","",null,null],[5,"token_name_eq","","Perform a token equality check, ignoring syntax context (that is, an\nunhygienic comparison)",null,{"inputs":[{"name":"token"},{"name":"token"}],"output":{"name":"bool"}}],[5,"parse","","",null,null],[5,"parse_nt","","",null,{"inputs":[{"name":"parser"},{"name":"span"},{"name":"str"}],"output":{"name":"nonterminal"}}],[6,"NamedParseResult","","",null,null],[6,"PositionalParseResult","","",null,null],[11,"clone","","",214,null],[0,"macro_rules","syntex_syntax::ext::tt","",null,null],[5,"compile","syntex_syntax::ext::tt::macro_rules","Converts a `macro_rules!` invocation into a syntax extension.",null,{"inputs":[{"name":"extctxt"},{"name":"macrodef"}],"output":{"name":"syntaxextension"}}],[14,"panictry!","syntex_syntax","",null,null],[14,"register_diagnostic!","","",null,null],[14,"span_fatal!","","",null,null],[14,"span_err!","","",null,null],[14,"span_warn!","","",null,null],[14,"span_err_or_warn!","","",null,null],[14,"struct_span_fatal!","","",null,null],[14,"struct_span_err!","","",null,null],[14,"struct_span_warn!","","",null,null],[14,"struct_span_err_or_warn!","","",null,null],[14,"span_note!","","",null,null],[14,"span_help!","","",null,null],[14,"help!","","",null,null],[14,"register_diagnostics!","","",null,null],[14,"register_long_diagnostics!","","",null,null],[14,"walk_list!","","",null,null],[11,"move_flat_map","syntex_syntax::ptr","",162,null],[11,"name","","",162,null],[11,"value_str","","",162,null],[11,"meta_item_list","","",162,null],[11,"is_word","","",162,null],[11,"is_value_str","","",162,null],[11,"is_meta_item_list","","",162,null],[11,"span","","",162,null],[11,"attrs","","",162,null],[11,"map_attrs","","",162,null],[11,"is_eof","syntex_syntax::ext::tt::transcribe","",211,null],[11,"try_next_token","","",211,null],[11,"fatal","","",211,null],[11,"err","","",211,null],[11,"emit_fatal_errors","","",211,null],[11,"peek","","",211,null],[11,"end_point","syntex_syntax::ext::quote::rt","Returns a new span representing just the end-point of this span",206,null],[11,"substitute_dummy","","Returns `self` if `self` is not the dummy span, and `other` otherwise.",206,null],[11,"contains","","",206,null],[11,"source_equal","","Return true if the spans are equal with regards to the source text.",206,null],[11,"merge","","Returns `Some(span)`, a union of `self` and `other`, on overlap.",206,null],[11,"trim_start","","Returns `Some(span)`, where the start is trimmed by the end of `other`",206,null],[11,"eq","","",206,null],[11,"ne","","",206,null],[11,"hash","","",206,null],[11,"clone","","",206,null],[11,"encode","","",206,null],[11,"decode","","",206,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"fmt","","",206,null],[11,"fmt","","",207,null],[11,"cmp","","",207,null],[11,"partial_cmp","","",207,null],[11,"lt","","",207,null],[11,"le","","",207,null],[11,"gt","","",207,null],[11,"ge","","",207,null],[11,"hash","","",207,null],[11,"eq","","",207,null],[11,"ne","","",207,null],[11,"clone","","",207,null],[11,"from_usize","","",207,{"inputs":[{"name":"usize"}],"output":{"name":"bytepos"}}],[11,"to_usize","","",207,null],[11,"add","","",207,null],[11,"sub","","",207,null],[11,"encode","","",207,null],[11,"decode","","",207,{"inputs":[{"name":"d"}],"output":{"name":"result"}}]],"paths":[[3,"ErrorInfo"],[3,"ErrorMetadata"],[3,"ErrorLocation"],[3,"Interner"],[3,"NodeCounter"],[4,"AssocOp"],[4,"Fixity"],[3,"SmallVector"],[3,"IntoIter"],[8,"MoveMap"],[3,"ThinVec"],[3,"JsonEmitter"],[4,"Os"],[4,"Abi"],[4,"Architecture"],[4,"AbiArchitecture"],[3,"AbiData"],[3,"Name"],[3,"Ident"],[3,"Lifetime"],[3,"LifetimeDef"],[3,"Path"],[3,"PathSegment"],[3,"AngleBracketedParameterData"],[3,"ParenthesizedParameterData"],[3,"TyParam"],[3,"Generics"],[3,"WhereClause"],[3,"WhereBoundPredicate"],[3,"WhereRegionPredicate"],[3,"WhereEqPredicate"],[3,"Crate"],[3,"Block"],[3,"Pat"],[3,"FieldPat"],[3,"Stmt"],[3,"Local"],[3,"Arm"],[3,"Field"],[3,"Expr"],[3,"QSelf"],[3,"Mac_"],[3,"MutTy"],[3,"MethodSig"],[3,"TraitItem"],[3,"ImplItem"],[3,"TypeBinding"],[3,"Ty"],[3,"BareFnTy"],[3,"InlineAsmOutput"],[3,"InlineAsm"],[3,"Arg"],[3,"FnDecl"],[3,"Mod"],[3,"ForeignMod"],[3,"EnumDef"],[3,"Variant_"],[3,"AttrId"],[3,"Attribute_"],[3,"TraitRef"],[3,"PolyTraitRef"],[3,"StructField"],[3,"Item"],[3,"ForeignItem"],[3,"MacroDef"],[4,"PathParameters"],[4,"TyParamBound"],[4,"TraitBoundModifier"],[4,"WherePredicate"],[4,"MetaItemKind"],[4,"BindingMode"],[4,"PatKind"],[4,"Mutability"],[4,"BinOpKind"],[4,"UnOp"],[4,"StmtKind"],[4,"MacStmtStyle"],[4,"BlockCheckMode"],[4,"UnsafeSource"],[4,"RangeLimits"],[4,"ExprKind"],[4,"CaptureBy"],[4,"StrStyle"],[4,"LitIntType"],[4,"LitKind"],[4,"TraitItemKind"],[4,"ImplItemKind"],[4,"IntTy"],[4,"UintTy"],[4,"FloatTy"],[4,"TyKind"],[4,"AsmDialect"],[4,"SelfKind"],[4,"Unsafety"],[4,"Constness"],[4,"Defaultness"],[4,"ImplPolarity"],[4,"FunctionRetTy"],[4,"PathListItemKind"],[4,"ViewPath_"],[4,"AttrStyle"],[4,"Visibility"],[4,"VariantData"],[4,"ItemKind"],[4,"ForeignItemKind"],[3,"Stability"],[3,"RustcDeprecation"],[3,"Deprecation"],[4,"InlineAttr"],[4,"StabilityLevel"],[4,"ReprAttr"],[4,"IntType"],[8,"AttrMetaMethods"],[8,"AttributeMethods"],[8,"HasAttrs"],[6,"Attribute"],[6,"MetaItem"],[6,"Variant"],[3,"Spanned"],[3,"NameAndSpan"],[3,"ExpnInfo"],[3,"CodeMap"],[4,"ExpnFormat"],[8,"FileLoader"],[3,"RealFileLoader"],[3,"StripUnconfigured"],[4,"EntryPointType"],[3,"Features"],[4,"AttributeType"],[4,"AttributeGate"],[4,"GateIssue"],[4,"UnstableFeatures"],[3,"GatedCfg"],[8,"Folder"],[3,"ParseSess"],[3,"Parser"],[3,"ModulePath"],[3,"ModulePathSuccess"],[3,"ModulePathError"],[4,"PathStyle"],[4,"BoundParsingMode"],[4,"SemiColonMode"],[4,"TokenType"],[4,"LhsExpr"],[3,"Restrictions"],[3,"TokenAndSpan"],[3,"StringReader"],[3,"Comment"],[3,"Literal"],[4,"CommentStyle"],[8,"Reader"],[4,"BinOpToken"],[4,"DelimToken"],[4,"SpecialMacroVar"],[4,"Lit"],[4,"Token"],[4,"Nonterminal"],[3,"Keyword"],[3,"InternedString"],[3,"SeqSep"],[4,"ObsoleteSyntax"],[8,"ParserObsoleteMethods"],[3,"P"],[3,"Delimited"],[3,"SequenceRepetition"],[4,"KleeneOp"],[4,"TokenTree"],[4,"InternalTS"],[3,"TokenStream"],[3,"Iter"],[3,"Split"],[4,"FnKind"],[8,"Visitor"],[3,"Printer"],[4,"Breaks"],[4,"Token"],[4,"PrintStackBreak"],[3,"BreakToken"],[3,"BeginToken"],[3,"PrintStackElem"],[3,"CurrentCommentAndLiteral"],[3,"State"],[4,"AnnNode"],[8,"PpAnn"],[8,"PrintState"],[3,"NoAnn"],[3,"MacEager"],[3,"BlockInfo"],[3,"ExtCtxt"],[3,"SyntaxEnv"],[4,"Annotatable"],[4,"SyntaxExtension"],[8,"MultiItemDecorator"],[8,"MultiItemModifier"],[8,"TTMacroExpander"],[8,"IdentMacroExpander"],[8,"MacResult"],[8,"MacroLoader"],[3,"DummyResult"],[3,"DummyMacroLoader"],[8,"AstBuilder"],[3,"MacroExpander"],[3,"ExpansionConfig"],[3,"SyntaxContext"],[3,"SyntaxContextData"],[3,"Mark"],[3,"Span"],[3,"BytePos"],[8,"ToTokens"],[8,"ExtParseUtils"],[6,"Lit"],[3,"TtReader"],[4,"NamedMatch"],[4,"ParseResult"],[3,"MatcherPos"]]}; initSearch(searchIndex);