var searchIndex = {}; searchIndex["syntex_syntax"] = {"doc":"The Rust parser and macro expander.","items":[[0,"util","syntex_syntax","",null,null],[0,"interner","syntex_syntax::util","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],[3,"RcStr","","",null,null],[3,"StrInterner","","A StrInterner differs from Interner<String> in that it accepts\n&str rather than RcStr, resulting in less allocation.",null,null],[11,"new","","",0,{"inputs":[],"output":{"name":"interner"}}],[11,"prefill","","",0,null],[11,"intern","","",0,null],[11,"gensym","","",0,null],[11,"get","","",0,null],[11,"len","","",0,null],[11,"find","","",0,null],[11,"clear","","",0,null],[11,"partial_cmp","","",1,null],[11,"lt","","",1,null],[11,"le","","",1,null],[11,"gt","","",1,null],[11,"ge","","",1,null],[11,"hash","","",1,null],[11,"eq","","",1,null],[11,"ne","","",1,null],[11,"clone","","",1,null],[11,"new","","",1,{"inputs":[{"name":"str"}],"output":{"name":"rcstr"}}],[11,"cmp","","",1,null],[11,"fmt","","",1,null],[11,"fmt","","",1,null],[11,"borrow","","",1,null],[11,"deref","","",1,null],[11,"new","","",2,{"inputs":[],"output":{"name":"strinterner"}}],[11,"prefill","","",2,null],[11,"intern","","",2,null],[11,"gensym","","",2,null],[11,"gensym_copy","","Create a gensym with the same name as an existing\nentry.",2,null],[11,"get","","",2,null],[11,"len","","",2,null],[11,"find","","",2,null],[11,"clear","","",2,null],[11,"reset","","",2,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","","",3,null],[11,"new","","",3,{"inputs":[],"output":{"name":"nodecounter"}}],[11,"visit_ident","","",3,null],[11,"visit_mod","","",3,null],[11,"visit_foreign_item","","",3,null],[11,"visit_item","","",3,null],[11,"visit_local","","",3,null],[11,"visit_block","","",3,null],[11,"visit_stmt","","",3,null],[11,"visit_arm","","",3,null],[11,"visit_pat","","",3,null],[11,"visit_decl","","",3,null],[11,"visit_expr","","",3,null],[11,"visit_ty","","",3,null],[11,"visit_generics","","",3,null],[11,"visit_fn","","",3,null],[11,"visit_trait_item","","",3,null],[11,"visit_impl_item","","",3,null],[11,"visit_trait_ref","","",3,null],[11,"visit_ty_param_bound","","",3,null],[11,"visit_poly_trait_ref","","",3,null],[11,"visit_variant_data","","",3,null],[11,"visit_struct_field","","",3,null],[11,"visit_enum_def","","",3,null],[11,"visit_variant","","",3,null],[11,"visit_lifetime","","",3,null],[11,"visit_lifetime_def","","",3,null],[11,"visit_explicit_self","","",3,null],[11,"visit_mac","","",3,null],[11,"visit_path","","",3,null],[11,"visit_path_list_item","","",3,null],[11,"visit_path_parameters","","",3,null],[11,"visit_assoc_type_binding","","",3,null],[11,"visit_attribute","","",3,null],[11,"visit_macro_def","","",3,null],[0,"parser","syntex_syntax::util","",null,null],[4,"AssocOp","syntex_syntax::util::parser","Associative operator with precedence.",null,null],[13,"Add","","`+`",4,null],[13,"Subtract","","`-`",4,null],[13,"Multiply","","`*`",4,null],[13,"Divide","","`/`",4,null],[13,"Modulus","","`%`",4,null],[13,"LAnd","","`&&`",4,null],[13,"LOr","","`||`",4,null],[13,"BitXor","","`^`",4,null],[13,"BitAnd","","`&`",4,null],[13,"BitOr","","`|`",4,null],[13,"ShiftLeft","","`<<`",4,null],[13,"ShiftRight","","`>>`",4,null],[13,"Equal","","`==`",4,null],[13,"Less","","`<`",4,null],[13,"LessEqual","","`<=`",4,null],[13,"NotEqual","","`!=`",4,null],[13,"Greater","","`>`",4,null],[13,"GreaterEqual","","`>=`",4,null],[13,"Assign","","`=`",4,null],[13,"Inplace","","`<-`",4,null],[13,"AssignOp","","`?=` where ? is one of the BinOpToken",4,null],[13,"As","","`as`",4,null],[13,"DotDot","","`..` range",4,null],[13,"Colon","","`:`",4,null],[4,"Fixity","","",null,null],[13,"Left","","The operator is left-associative",5,null],[13,"Right","","The operator is right-associative",5,null],[13,"None","","The operator is not associative",5,null],[11,"eq","","",4,null],[11,"ne","","",4,null],[11,"fmt","","",4,null],[11,"eq","","",5,null],[11,"fmt","","",5,null],[11,"from_token","","Create a new AssocOP from a token",4,{"inputs":[{"name":"token"}],"output":{"name":"option"}}],[11,"from_ast_binop","","Create a new AssocOp from ast::BinOpKind.",4,{"inputs":[{"name":"binopkind"}],"output":{"name":"self"}}],[11,"precedence","","Gets the precedence of this operator",4,null],[11,"fixity","","Gets the fixity of this operator",4,null],[11,"is_comparison","","",4,null],[11,"is_assign_like","","",4,null],[11,"to_ast_binop","","",4,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,"from_iter","","",6,{"inputs":[{"name":"i"}],"output":{"name":"smallvector"}}],[11,"extend","","",6,null],[11,"zero","","",6,{"inputs":[],"output":{"name":"smallvector"}}],[11,"one","","",6,{"inputs":[{"name":"t"}],"output":{"name":"smallvector"}}],[11,"many","","",6,{"inputs":[{"name":"vec"}],"output":{"name":"smallvector"}}],[11,"as_slice","","",6,null],[11,"pop","","",6,null],[11,"push","","",6,null],[11,"push_all","","",6,null],[11,"get","","",6,null],[11,"expect_one","","",6,null],[11,"len","","",6,null],[11,"is_empty","","",6,null],[11,"into_iter","","",6,null],[11,"next","","",7,null],[11,"size_hint","","",7,null],[11,"move_flat_map","","",6,null],[0,"move_map","syntex_syntax::util","",null,null],[8,"MoveMap","syntex_syntax::util::move_map","",null,null],[11,"move_map","","",8,null],[10,"move_flat_map","","",8,null],[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","","",9,null],[12,"use_site","","",9,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,"registry","syntex_syntax::diagnostics","",null,null],[3,"Registry","syntex_syntax::diagnostics::registry","",null,null],[11,"clone","","",10,null],[11,"new","","",10,null],[11,"find_description","","",10,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","","",11,null],[12,"use_site","","",11,null],[3,"ErrorLocation","","JSON encodable error location type with filename and line number.",null,null],[12,"filename","","",12,null],[12,"line","","",12,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","","",11,null],[11,"decode","","",11,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"eq","","",11,null],[11,"ne","","",11,null],[11,"encode","","",12,null],[11,"decode","","",12,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"eq","","",12,null],[11,"ne","","",12,null],[11,"from_span","","Create an error location from a span.",12,{"inputs":[{"name":"extctxt"},{"name":"span"}],"output":{"name":"errorlocation"}}],[0,"errors","syntex_syntax","",null,null],[3,"CodeSuggestion","syntex_syntax::errors","",null,null],[3,"FatalError","","Used as a return value to signify a fatal error occurred. (It is also\nused as the argument to panic at the moment, but that will eventually\nnot be true.)",null,null],[3,"ExplicitBug","","Signifies that the compiler died with an explicit call to `.bug`\nor `.span_bug` rather than a failed assertion, etc.",null,null],[3,"DiagnosticBuilder","","Used for emitting structured error messages and other diagnostic information.",null,null],[3,"Handler","","A handler deals with errors; certain errors\n(fatal, bug, unimpl) may cause immediate exit,\nothers log errors for later reporting.",null,null],[12,"can_emit_warnings","","",13,null],[4,"RenderSpan","","",null,null],[13,"FullSpan","","A FullSpan renders with both with an initial line for the\nmessage, prefixed by file:linenum, followed by a summary of\nthe source code covered by the span.",14,null],[13,"EndSpan","","Similar to a FullSpan, but the cited position is the end of\nthe span, instead of the start. Used, at least, for telling\ncompiletest/runtest to look at the last line of the span\n(since `end_highlight_lines` displays an arrow to the end\nof the span).",14,null],[13,"Suggestion","","A suggestion renders with both with an initial line for the\nmessage, prefixed by file:linenum, followed by a summary\nof hypothetical source code, where each `String` is spliced\ninto the lines in place of the code covered by each span.",14,null],[13,"FileLine","","A FileLine renders with just a line for the message prefixed\nby file:linenum.",14,null],[4,"Level","","",null,null],[13,"Bug","","",15,null],[13,"Fatal","","",15,null],[13,"PhaseFatal","","",15,null],[13,"Error","","",15,null],[13,"Warning","","",15,null],[13,"Note","","",15,null],[13,"Help","","",15,null],[13,"Cancelled","","",15,null],[5,"expect","","",null,{"inputs":[{"name":"handler"},{"name":"option"},{"name":"m"}],"output":{"name":"t"}}],[0,"emitter","","",null,null],[3,"BasicEmitter","syntex_syntax::errors::emitter","A basic emitter for when we don't have access to a codemap or registry. Used\nfor reporting very early errors, etc.",null,null],[3,"EmitterWriter","","",null,null],[4,"ColorConfig","","",null,null],[13,"Auto","","",16,null],[13,"Always","","",16,null],[13,"Never","","",16,null],[17,"MAX_HIGHLIGHT_LINES","","maximum number of lines we will print for each error; arbitrary.",null,null],[8,"Emitter","","",null,null],[10,"emit","","",17,null],[10,"custom_emit","","",17,null],[11,"emit_struct","","Emit a structured diagnostic.",17,null],[11,"eq","","",16,null],[11,"fmt","","",16,null],[11,"clone","","",16,null],[11,"emit","","",18,null],[11,"custom_emit","","",18,null],[11,"stderr","","",18,{"inputs":[{"name":"colorconfig"}],"output":{"name":"basicemitter"}}],[11,"emit","","",19,null],[11,"custom_emit","","",19,null],[11,"stderr","","",19,{"inputs":[{"name":"colorconfig"},{"name":"option"},{"name":"rc"}],"output":{"name":"emitterwriter"}}],[11,"new","","",19,{"inputs":[{"name":"box"},{"name":"option"},{"name":"rc"}],"output":{"name":"emitterwriter"}}],[0,"json","syntex_syntax::errors","A JSON emitter for errors.",null,null],[3,"JsonEmitter","syntex_syntax::errors::json","",null,null],[11,"basic","","",20,{"inputs":[],"output":{"name":"jsonemitter"}}],[11,"stderr","","",20,{"inputs":[{"name":"option"},{"name":"rc"}],"output":{"name":"jsonemitter"}}],[11,"emit","","",20,null],[11,"custom_emit","","",20,null],[11,"emit_struct","","",20,null],[11,"clone","syntex_syntax::errors","",14,null],[11,"clone","","",21,null],[11,"splice_lines","","Returns the assembled code suggestion.",21,null],[11,"fmt","","",22,null],[11,"clone","","",22,null],[11,"fmt","","",22,null],[11,"description","","",22,null],[11,"fmt","","",23,null],[11,"clone","","",23,null],[11,"fmt","","",23,null],[11,"description","","",23,null],[11,"emit","","Emit the diagnostic.",24,null],[11,"cancel","","Cancel the diagnostic (a structured diagnostic must either be emitted or\ncancelled or it will panic when dropped).\nBEWARE: if this DiagnosticBuilder is an error, then creating it will\nbump the error count on the Handler and cancelling it won't undo that.\nIf you want to decrement the error count you should use `Handler::cancel`.",24,null],[11,"cancelled","","",24,null],[11,"is_fatal","","",24,null],[11,"note","","",24,null],[11,"span_note","","",24,null],[11,"warn","","",24,null],[11,"span_warn","","",24,null],[11,"help","","",24,null],[11,"span_help","","",24,null],[11,"span_suggestion","","Prints out a message with a suggested edit of the code.",24,null],[11,"span_end_note","","",24,null],[11,"fileline_warn","","",24,null],[11,"fileline_note","","",24,null],[11,"fileline_help","","",24,null],[11,"span","","",24,null],[11,"code","","",24,null],[11,"fmt","","",24,null],[11,"drop","","",24,null],[11,"with_tty_emitter","","",13,{"inputs":[{"name":"colorconfig"},{"name":"option"},{"name":"bool"},{"name":"bool"},{"name":"rc"}],"output":{"name":"handler"}}],[11,"with_emitter","","",13,{"inputs":[{"name":"bool"},{"name":"bool"},{"name":"box"}],"output":{"name":"handler"}}],[11,"struct_dummy","","",13,null],[11,"struct_span_warn","","",13,null],[11,"struct_span_warn_with_code","","",13,null],[11,"struct_warn","","",13,null],[11,"struct_span_err","","",13,null],[11,"struct_span_err_with_code","","",13,null],[11,"struct_err","","",13,null],[11,"struct_span_fatal","","",13,null],[11,"struct_span_fatal_with_code","","",13,null],[11,"struct_fatal","","",13,null],[11,"cancel","","",13,null],[11,"span_fatal","","",13,null],[11,"span_fatal_with_code","","",13,null],[11,"span_err","","",13,null],[11,"span_err_with_code","","",13,null],[11,"span_warn","","",13,null],[11,"span_warn_with_code","","",13,null],[11,"span_bug","","",13,null],[11,"delay_span_bug","","",13,null],[11,"span_bug_no_panic","","",13,null],[11,"span_note_without_error","","",13,null],[11,"span_unimpl","","",13,null],[11,"fatal","","",13,null],[11,"err","","",13,null],[11,"warn","","",13,null],[11,"note_without_error","","",13,null],[11,"bug","","",13,null],[11,"unimpl","","",13,null],[11,"bump_err_count","","",13,null],[11,"err_count","","",13,null],[11,"has_errors","","",13,null],[11,"abort_if_errors","","",13,null],[11,"emit","","",13,null],[11,"emit_with_code","","",13,null],[11,"custom_emit","","",13,null],[11,"fmt","","",15,null],[11,"clone","","",15,null],[11,"eq","","",15,null],[11,"fmt","","",15,null],[0,"syntax","syntex_syntax","",null,null],[0,"abi","","",null,null],[3,"AbiData","syntex_syntax::abi","",null,null],[4,"Os","","",null,null],[13,"Windows","","",25,null],[13,"Macos","","",25,null],[13,"Linux","","",25,null],[13,"Android","","",25,null],[13,"Freebsd","","",25,null],[13,"iOS","","",25,null],[13,"Dragonfly","","",25,null],[13,"Bitrig","","",25,null],[13,"Netbsd","","",25,null],[13,"Openbsd","","",25,null],[13,"NaCl","","",25,null],[13,"Solaris","","",25,null],[4,"Abi","","",null,null],[13,"Cdecl","","",26,null],[13,"Stdcall","","",26,null],[13,"Fastcall","","",26,null],[13,"Vectorcall","","",26,null],[13,"Aapcs","","",26,null],[13,"Win64","","",26,null],[13,"Rust","","",26,null],[13,"C","","",26,null],[13,"System","","",26,null],[13,"RustIntrinsic","","",26,null],[13,"RustCall","","",26,null],[13,"PlatformIntrinsic","","",26,null],[4,"Architecture","","",null,null],[13,"X86","","",27,null],[13,"X86_64","","",27,null],[13,"Arm","","",27,null],[13,"Mips","","",27,null],[13,"Mipsel","","",27,null],[4,"AbiArchitecture","","",null,null],[13,"Rust","","Not a real ABI (e.g., intrinsic)",28,null],[13,"All","","An ABI that specifies cross-platform defaults (e.g., "C")",28,null],[13,"Archs","","Multiple architectures (bitset)",28,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","","",25,null],[11,"eq","","",25,null],[11,"clone","","",25,null],[11,"fmt","","",26,null],[11,"clone","","",26,null],[11,"decode","","",26,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",26,null],[11,"hash","","",26,null],[11,"eq","","",26,null],[11,"fmt","","",27,null],[11,"eq","","",27,null],[11,"clone","","",27,null],[11,"clone","","",29,null],[11,"clone","","",28,null],[11,"index","","",26,null],[11,"data","","",26,null],[11,"name","","",26,null],[11,"fmt","","",26,null],[11,"fmt","","",25,null],[0,"ast","syntex_syntax","",null,null],[3,"Name","syntex_syntax::ast","A name is a part of an identifier, representing a string or gensym. It's\nthe result of interning.",null,null],[12,"0","","",30,null],[3,"SyntaxContext","","A SyntaxContext represents a chain of macro-expandings\nand renamings. Each macro expansion corresponds to\na fresh u32. This u32 is a reference to a table stored\nin thread-local storage.\nThe special value EMPTY_CTXT is used to indicate an empty\nsyntax context.",null,null],[12,"0","","",31,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","","",32,null],[12,"ctxt","","",32,null],[3,"Lifetime","","",null,null],[12,"id","","",33,null],[12,"span","","",33,null],[12,"name","","",33,null],[3,"LifetimeDef","","A lifetime definition, eg `'a: 'b+'c+'d`",null,null],[12,"lifetime","","",34,null],[12,"bounds","","",34,null],[3,"Path","","A "Path" is essentially Rust's notion of a name; for instance:\nstd::cmp::PartialEq . It's represented as a sequence of identifiers,\nalong with a bunch of supporting information.",null,null],[12,"span","","",35,null],[12,"global","","A `::foo` path, is relative to the crate root rather than current\nmodule (like paths in an import).",35,null],[12,"segments","","The segments in the path: the things separated by `::`.",35,null],[3,"PathSegment","","A segment of a path: an identifier, an optional lifetime, and a set of\ntypes.",null,null],[12,"identifier","","The identifier portion of this path segment.",36,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.",36,null],[3,"AngleBracketedParameterData","","A path like `Foo<'a, T>`",null,null],[12,"lifetimes","","The lifetime parameters for this path segment.",37,null],[12,"types","","The type parameters for this path segment, if present.",37,null],[12,"bindings","","Bindings (equality constraints) on associated types, if present.\ne.g., `Foo<A=Bar>`.",37,null],[3,"ParenthesizedParameterData","","A path like `Foo(A,B) -> C`",null,null],[12,"span","","Overall span",38,null],[12,"inputs","","`(A,B)`",38,null],[12,"output","","`C`",38,null],[3,"TyParam","","",null,null],[12,"ident","","",39,null],[12,"id","","",39,null],[12,"bounds","","",39,null],[12,"default","","",39,null],[12,"span","","",39,null],[3,"Generics","","Represents lifetimes and type parameters attached to a declaration\nof a function, enum, trait, etc.",null,null],[12,"lifetimes","","",40,null],[12,"ty_params","","",40,null],[12,"where_clause","","",40,null],[3,"WhereClause","","A `where` clause in a definition",null,null],[12,"id","","",41,null],[12,"predicates","","",41,null],[3,"WhereBoundPredicate","","A type bound, e.g. `for<'c> Foo: Send+Clone+'c`",null,null],[12,"span","","",42,null],[12,"bound_lifetimes","","Any lifetimes from a `for` binding",42,null],[12,"bounded_ty","","The type being bounded",42,null],[12,"bounds","","Trait and lifetime bounds (`Clone+Send+'static`)",42,null],[3,"WhereRegionPredicate","","A lifetime predicate, e.g. `'a: 'b+'c`",null,null],[12,"span","","",43,null],[12,"lifetime","","",43,null],[12,"bounds","","",43,null],[3,"WhereEqPredicate","","An equality predicate (unsupported), e.g. `T=int`",null,null],[12,"id","","",44,null],[12,"span","","",44,null],[12,"path","","",44,null],[12,"ty","","",44,null],[3,"Crate","","",null,null],[12,"module","","",45,null],[12,"attrs","","",45,null],[12,"config","","",45,null],[12,"span","","",45,null],[12,"exported_macros","","",45,null],[3,"Block","","",null,null],[12,"stmts","","Statements in a block",46,null],[12,"expr","","An expression at the end of the block\nwithout a semicolon, if any",46,null],[12,"id","","",46,null],[12,"rules","","Distinguishes between `unsafe { ... }` and `{ ... }`",46,null],[12,"span","","",46,null],[3,"Pat","","",null,null],[12,"id","","",47,null],[12,"node","","",47,null],[12,"span","","",47,null],[3,"FieldPat","","A single field in a struct pattern",null,null],[12,"ident","","The identifier for the field",48,null],[12,"pat","","The pattern the field is destructured to",48,null],[12,"is_shorthand","","",48,null],[3,"Local","","Local represents a `let` statement, e.g., `let <pat>:<ty> = <expr>;`",null,null],[12,"pat","","",49,null],[12,"ty","","",49,null],[12,"init","","Initializer expression to set the value, if any",49,null],[12,"id","","",49,null],[12,"span","","",49,null],[12,"attrs","","",49,null],[3,"Arm","","represents one arm of a 'match'",null,null],[12,"attrs","","",50,null],[12,"pats","","",50,null],[12,"guard","","",50,null],[12,"body","","",50,null],[3,"Field","","",null,null],[12,"ident","","",51,null],[12,"expr","","",51,null],[12,"span","","",51,null],[3,"Expr","","An expression",null,null],[12,"id","","",52,null],[12,"node","","",52,null],[12,"span","","",52,null],[12,"attrs","","",52,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","","",53,null],[12,"position","","",53,null],[3,"Delimited","","A delimited sequence of token trees",null,null],[12,"delim","","The type of delimiter",54,null],[12,"open_span","","The span covering the opening delimiter",54,null],[12,"tts","","The delimited sequence of token trees",54,null],[12,"close_span","","The span covering the closing delimiter",54,null],[3,"SequenceRepetition","","A sequence of token trees",null,null],[12,"tts","","The sequence of token trees",55,null],[12,"separator","","The optional separator",55,null],[12,"op","","Whether the sequence can be repeated zero (*), or one or more times (+)",55,null],[12,"num_captures","","The number of `MatchNt`s that appear in the sequence (and subsequences)",55,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","","",56,null],[12,"tts","","",56,null],[12,"ctxt","","",56,null],[3,"MutTy","","",null,null],[12,"ty","","",57,null],[12,"mutbl","","",57,null],[3,"MethodSig","","Represents a method's signature in a trait declaration,\nor in an implementation.",null,null],[12,"unsafety","","",58,null],[12,"constness","","",58,null],[12,"abi","","",58,null],[12,"decl","","",58,null],[12,"generics","","",58,null],[12,"explicit_self","","",58,null],[3,"TraitItem","","Represents a method declaration in a trait declaration, possibly including\na default implementation. A trait method is either required (meaning it\ndoesn't have an implementation, just a signature) or provided (meaning it\nhas a default implementation).",null,null],[12,"id","","",59,null],[12,"ident","","",59,null],[12,"attrs","","",59,null],[12,"node","","",59,null],[12,"span","","",59,null],[3,"ImplItem","","",null,null],[12,"id","","",60,null],[12,"ident","","",60,null],[12,"vis","","",60,null],[12,"attrs","","",60,null],[12,"node","","",60,null],[12,"span","","",60,null],[3,"TypeBinding","","",null,null],[12,"id","","",61,null],[12,"ident","","",61,null],[12,"ty","","",61,null],[12,"span","","",61,null],[3,"Ty","","",null,null],[12,"id","","",62,null],[12,"node","","",62,null],[12,"span","","",62,null],[3,"BareFnTy","","",null,null],[12,"unsafety","","",63,null],[12,"abi","","",63,null],[12,"lifetimes","","",63,null],[12,"decl","","",63,null],[3,"InlineAsmOutput","","",null,null],[12,"constraint","","",64,null],[12,"expr","","",64,null],[12,"is_rw","","",64,null],[12,"is_indirect","","",64,null],[3,"InlineAsm","","",null,null],[12,"asm","","",65,null],[12,"asm_str_style","","",65,null],[12,"outputs","","",65,null],[12,"inputs","","",65,null],[12,"clobbers","","",65,null],[12,"volatile","","",65,null],[12,"alignstack","","",65,null],[12,"dialect","","",65,null],[12,"expn_id","","",65,null],[3,"Arg","","represents an argument in a function header",null,null],[12,"ty","","",66,null],[12,"pat","","",66,null],[12,"id","","",66,null],[3,"FnDecl","","Represents the header (not the body) of a function declaration",null,null],[12,"inputs","","",67,null],[12,"output","","",67,null],[12,"variadic","","",67,null],[3,"Mod","","",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.",68,null],[12,"items","","",68,null],[3,"ForeignMod","","",null,null],[12,"abi","","",69,null],[12,"items","","",69,null],[3,"EnumDef","","",null,null],[12,"variants","","",70,null],[3,"Variant_","","",null,null],[12,"name","","",71,null],[12,"attrs","","",71,null],[12,"data","","",71,null],[12,"disr_expr","","Explicit discriminant, eg `Foo = 1`",71,null],[3,"AttrId","","",null,null],[12,"0","","",72,null],[3,"Attribute_","","Doc-comments are promoted to attributes that have is_sugared_doc = true",null,null],[12,"id","","",73,null],[12,"style","","",73,null],[12,"value","","",73,null],[12,"is_sugared_doc","","",73,null],[3,"TraitRef","","TraitRef's appear in impls.",null,null],[12,"path","","",74,null],[12,"ref_id","","",74,null],[3,"PolyTraitRef","","",null,null],[12,"bound_lifetimes","","The `'a` in `<'a> Foo<&'a T>`",75,null],[12,"trait_ref","","The `Foo<&'a T>` in `<'a> Foo<&'a T>`",75,null],[12,"span","","",75,null],[3,"StructField_","","",null,null],[12,"kind","","",76,null],[12,"id","","",76,null],[12,"ty","","",76,null],[12,"attrs","","",76,null],[3,"Item","","An item",null,null],[12,"ident","","",77,null],[12,"attrs","","",77,null],[12,"id","","",77,null],[12,"node","","",77,null],[12,"vis","","",77,null],[12,"span","","",77,null],[3,"ForeignItem","","",null,null],[12,"ident","","",78,null],[12,"attrs","","",78,null],[12,"node","","",78,null],[12,"id","","",78,null],[12,"span","","",78,null],[12,"vis","","",78,null],[3,"MacroDef","","A macro definition, in this crate or imported from another.",null,null],[12,"ident","","",79,null],[12,"attrs","","",79,null],[12,"id","","",79,null],[12,"span","","",79,null],[12,"imported_from","","",79,null],[12,"export","","",79,null],[12,"use_locally","","",79,null],[12,"allow_internal_unstable","","",79,null],[12,"body","","",79,null],[4,"PathParameters","","",null,null],[13,"AngleBracketed","","The `<'a, A,B,C>` in `foo::bar::baz::<'a, A,B,C>`",80,null],[13,"Parenthesized","","The `(A,B)` and `C` in `Foo(A,B) -> C`",80,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","","",81,null],[13,"RegionTyParamBound","","",81,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","","",82,null],[13,"Maybe","","",82,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`",83,null],[13,"RegionPredicate","","A lifetime predicate, e.g. `'a: 'b+'c`",83,null],[13,"EqPredicate","","An equality predicate (unsupported)",83,null],[4,"MetaItemKind","","",null,null],[13,"Word","","",84,null],[13,"List","","",84,null],[13,"NameValue","","",84,null],[4,"BindingMode","","",null,null],[13,"ByRef","","",85,null],[13,"ByValue","","",85,null],[4,"Pat_","","",null,null],[13,"PatWild","","Represents a wildcard pattern (`_`)",86,null],[13,"PatIdent","","A PatIdent may either be a new bound variable,\nor a nullary enum (in which case the third field\nis None).",86,null],[13,"PatEnum","",""None" means a `Variant(..)` pattern where we don't bind the fields to names.",86,null],[13,"PatQPath","","An associated const named using the qualified path `<T>::CONST` or\n`<T as Trait>::CONST`. Associated consts from inherent impls can be\nreferred to as simply `T::CONST`, in which case they will end up as\nPatEnum, and the resolver will have to sort that out.",86,null],[13,"PatStruct","","Destructuring of a struct, e.g. `Foo {x, y, ..}`\nThe `bool` is `true` in the presence of a `..`",86,null],[13,"PatTup","","A tuple pattern `(a, b)`",86,null],[13,"PatBox","","A `box` pattern",86,null],[13,"PatRegion","","A reference pattern, e.g. `&mut (a, b)`",86,null],[13,"PatLit","","A literal",86,null],[13,"PatRange","","A range pattern, e.g. `1...2`",86,null],[13,"PatVec","","`[a, b, ..i, y, z]` is represented as:\n`PatVec(box [a, b], Some(i), box [y, z])`",86,null],[13,"PatMac","","A macro pattern; pre-expansion",86,null],[4,"Mutability","","",null,null],[13,"Mutable","","",87,null],[13,"Immutable","","",87,null],[4,"BinOpKind","","",null,null],[13,"Add","","The `+` operator (addition)",88,null],[13,"Sub","","The `-` operator (subtraction)",88,null],[13,"Mul","","The `*` operator (multiplication)",88,null],[13,"Div","","The `/` operator (division)",88,null],[13,"Rem","","The `%` operator (modulus)",88,null],[13,"And","","The `&&` operator (logical and)",88,null],[13,"Or","","The `||` operator (logical or)",88,null],[13,"BitXor","","The `^` operator (bitwise xor)",88,null],[13,"BitAnd","","The `&` operator (bitwise and)",88,null],[13,"BitOr","","The `|` operator (bitwise or)",88,null],[13,"Shl","","The `<<` operator (shift left)",88,null],[13,"Shr","","The `>>` operator (shift right)",88,null],[13,"Eq","","The `==` operator (equality)",88,null],[13,"Lt","","The `<` operator (less than)",88,null],[13,"Le","","The `<=` operator (less than or equal to)",88,null],[13,"Ne","","The `!=` operator (not equal to)",88,null],[13,"Ge","","The `>=` operator (greater than or equal to)",88,null],[13,"Gt","","The `>` operator (greater than)",88,null],[4,"UnOp","","",null,null],[13,"Deref","","The `*` operator for dereferencing",89,null],[13,"Not","","The `!` operator for logical inversion",89,null],[13,"Neg","","The `-` operator for negation",89,null],[4,"StmtKind","","",null,null],[13,"Decl","","Could be an item or a local (let) binding:",90,null],[13,"Expr","","Expr without trailing semi-colon (must have unit type):",90,null],[13,"Semi","","Expr with trailing semi-colon (may have any type):",90,null],[13,"Mac","","",90,null],[4,"MacStmtStyle","","",null,null],[13,"Semicolon","","The macro statement had a trailing semicolon, e.g. `foo! { ... };`\n`foo!(...);`, `foo![...];`",91,null],[13,"Braces","","The macro statement had braces; e.g. foo! { ... }",91,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.",91,null],[4,"DeclKind","","",null,null],[13,"Local","","A local (let) binding:",92,null],[13,"Item","","An item binding:",92,null],[4,"BlockCheckMode","","",null,null],[13,"Default","","",93,null],[13,"Unsafe","","",93,null],[4,"UnsafeSource","","",null,null],[13,"CompilerGenerated","","",94,null],[13,"UserProvided","","",94,null],[4,"ExprKind","","",null,null],[13,"Box","","A `box x` expression.",95,null],[13,"InPlace","","First expr is the place; second expr is the value.",95,null],[13,"Vec","","An array (`[a, b, c, d]`)",95,null],[13,"Call","","A function call",95,null],[13,"MethodCall","","A method call (`x.foo::<Bar, Baz>(a, b, c, d)`)",95,null],[13,"Tup","","A tuple (`(a, b, c ,d)`)",95,null],[13,"Binary","","A binary operation (For example: `a + b`, `a * b`)",95,null],[13,"Unary","","A unary operation (For example: `!x`, `*x`)",95,null],[13,"Lit","","A literal (For example: `1u8`, `"foo"`)",95,null],[13,"Cast","","A cast (`foo as f64`)",95,null],[13,"Type","","",95,null],[13,"If","","An `if` block, with an optional else block",95,null],[13,"IfLet","","An `if let` expression with an optional else block",95,null],[13,"While","","A while loop, with an optional label",95,null],[13,"WhileLet","","A while-let loop, with an optional label",95,null],[13,"ForLoop","","A for loop, with an optional label",95,null],[13,"Loop","","Conditionless loop (can be exited with break, continue, or return)",95,null],[13,"Match","","A `match` block.",95,null],[13,"Closure","","A closure (for example, `move |a, b, c| {a + b + c}`)",95,null],[13,"Block","","A block (`{ ... }`)",95,null],[13,"Assign","","An assignment (`a = foo()`)",95,null],[13,"AssignOp","","An assignment with an operator",95,null],[13,"Field","","Access of a named struct field (`obj.foo`)",95,null],[13,"TupField","","Access of an unnamed field of a struct or tuple-struct",95,null],[13,"Index","","An indexing operation (`foo[2]`)",95,null],[13,"Range","","A range (`1..2`, `1..`, or `..2`)",95,null],[13,"Path","","Variable reference, possibly containing `::` and/or type\nparameters, e.g. foo::bar::<baz>.",95,null],[13,"AddrOf","","A referencing operation (`&a` or `&mut a`)",95,null],[13,"Break","","A `break`, with an optional label to break",95,null],[13,"Again","","A `continue`, with an optional label",95,null],[13,"Ret","","A `return`, with an optional value to be returned",95,null],[13,"InlineAsm","","Output of the `asm!()` macro",95,null],[13,"Mac","","A macro invocation; pre-expansion",95,null],[13,"Struct","","A struct literal expression.",95,null],[13,"Repeat","","An array literal constructed from one repeated element.",95,null],[13,"Paren","","No-op: used solely so we can pretty-print faithfully",95,null],[4,"CaptureBy","","A capture clause",null,null],[13,"Value","","",96,null],[13,"Ref","","",96,null],[4,"KleeneOp","","A Kleene-style [repetition operator](http://en.wikipedia.org/wiki/Kleene_star)\nfor token sequences.",null,null],[13,"ZeroOrMore","","",97,null],[13,"OneOrMore","","",97,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",98,null],[13,"Delimited","","A delimited sequence of token trees",98,null],[13,"Sequence","","A kleene-style repetition sequence with a span",98,null],[4,"StrStyle","","",null,null],[13,"Cooked","","A regular string, like `"foo"`",99,null],[13,"Raw","","A raw string, like `r##"foo"##`",99,null],[4,"LitIntType","","",null,null],[13,"Signed","","",100,null],[13,"Unsigned","","",100,null],[13,"Unsuffixed","","",100,null],[4,"LitKind","","",null,null],[13,"Str","","A string literal (`"foo"`)",101,null],[13,"ByteStr","","A byte string (`b"foo"`)",101,null],[13,"Byte","","A byte char (`b'f'`)",101,null],[13,"Char","","A character literal (`'a'`)",101,null],[13,"Int","","An integer literal (`1u8`)",101,null],[13,"Float","","A float literal (`1f64` or `1E10f64`)",101,null],[13,"FloatUnsuffixed","","A float literal without a suffix (`1.0 or 1.0E10`)",101,null],[13,"Bool","","A boolean literal",101,null],[4,"TraitItemKind","","",null,null],[13,"Const","","",102,null],[13,"Method","","",102,null],[13,"Type","","",102,null],[4,"ImplItemKind","","",null,null],[13,"Const","","",103,null],[13,"Method","","",103,null],[13,"Type","","",103,null],[13,"Macro","","",103,null],[4,"IntTy","","",null,null],[13,"Is","","",104,null],[13,"I8","","",104,null],[13,"I16","","",104,null],[13,"I32","","",104,null],[13,"I64","","",104,null],[4,"UintTy","","",null,null],[13,"Us","","",105,null],[13,"U8","","",105,null],[13,"U16","","",105,null],[13,"U32","","",105,null],[13,"U64","","",105,null],[4,"FloatTy","","",null,null],[13,"F32","","",106,null],[13,"F64","","",106,null],[4,"TyKind","","The different kinds of types recognized by the compiler",null,null],[13,"Vec","","",107,null],[13,"FixedLengthVec","","A fixed length array (`[T; n]`)",107,null],[13,"Ptr","","A raw pointer (`*const T` or `*mut T`)",107,null],[13,"Rptr","","A reference (`&'a T` or `&'a mut T`)",107,null],[13,"BareFn","","A bare function (e.g. `fn(usize) -> bool`)",107,null],[13,"Tup","","A tuple (`(A, B, C, D,...)`)",107,null],[13,"Path","","A path (`module::module::...::Type`), optionally\n"qualified", e.g. `<Vec<T> as SomeTrait>::SomeType`.",107,null],[13,"ObjectSum","","Something like `A+B`. Note that `B` must always be a path.",107,null],[13,"PolyTraitRef","","A type like `for<'a> Foo<&'a Bar>`",107,null],[13,"Paren","","No-op; kept solely so that we can pretty-print faithfully",107,null],[13,"Typeof","","Unused for now",107,null],[13,"Infer","","TyKind::Infer means the type should be inferred instead of it having been\nspecified. This can appear anywhere in a type.",107,null],[13,"Mac","","",107,null],[4,"AsmDialect","","",null,null],[13,"Att","","",108,null],[13,"Intel","","",108,null],[4,"Unsafety","","",null,null],[13,"Unsafe","","",109,null],[13,"Normal","","",109,null],[4,"Constness","","",null,null],[13,"Const","","",110,null],[13,"NotConst","","",110,null],[4,"ImplPolarity","","",null,null],[13,"Positive","","`impl Trait for Type`",111,null],[13,"Negative","","`impl !Trait for Type`",111,null],[4,"FunctionRetTy","","",null,null],[13,"None","","Functions with return type `!`that always\nraise an error or exit (i.e. never return to the caller)",112,null],[13,"Default","","Return type is not specified.",112,null],[13,"Ty","","Everything else",112,null],[4,"SelfKind","","Represents the kind of 'self' associated with a method",null,null],[13,"Static","","No self",113,null],[13,"Value","","`self`",113,null],[13,"Region","","`&'lt self`, `&'lt mut self`",113,null],[13,"Explicit","","`self: TYPE`",113,null],[4,"PathListItemKind","","",null,null],[13,"Ident","","",114,null],[12,"name","syntex_syntax::ast::PathListItemKind","",114,null],[12,"rename","","renamed in list, eg `use foo::{bar as baz};`",114,null],[12,"id","","",114,null],[13,"Mod","syntex_syntax::ast","",114,null],[12,"rename","syntex_syntax::ast::PathListItemKind","renamed in list, eg `use foo::{self as baz};`",114,null],[12,"id","","",114,null],[4,"ViewPath_","syntex_syntax::ast","",null,null],[13,"ViewPathSimple","","`foo::bar::baz as quux`",115,null],[13,"ViewPathGlob","","`foo::bar::*`",115,null],[13,"ViewPathList","","`foo::bar::{a,b,c}`",115,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","","",116,null],[13,"Inner","","",116,null],[4,"Visibility","","",null,null],[13,"Public","","",117,null],[13,"Inherited","","",117,null],[4,"StructFieldKind","","",null,null],[13,"NamedField","","",118,null],[13,"UnnamedField","","Element of a tuple-like struct",118,null],[4,"VariantData","","Fields and Ids of enum variants and structs",null,null],[13,"Struct","","",119,null],[13,"Tuple","","",119,null],[13,"Unit","","",119,null],[4,"ItemKind","","",null,null],[13,"ExternCrate","","An`extern crate` item, with optional original crate name,",120,null],[13,"Use","","A `use` or `pub use` item",120,null],[13,"Static","","A `static` item",120,null],[13,"Const","","A `const` item",120,null],[13,"Fn","","A function declaration",120,null],[13,"Mod","","A module",120,null],[13,"ForeignMod","","An external module",120,null],[13,"Ty","","A type alias, e.g. `type Foo = Bar<u8>`",120,null],[13,"Enum","","An enum definition, e.g. `enum Foo<A, B> {C<A>, D<B>}`",120,null],[13,"Struct","","A struct definition, e.g. `struct Foo<A> {x: A}`",120,null],[13,"Trait","","Represents a Trait Declaration",120,null],[13,"DefaultImpl","","",120,null],[13,"Impl","","An implementation, eg `impl<A> Trait for Foo { .. }`",120,null],[13,"Mac","","A macro invocation (which includes macro definition)",120,null],[4,"ForeignItemKind","","An item within an `extern` block",null,null],[13,"Fn","","A foreign function",121,null],[13,"Static","","A foreign static item (`static ext: u8`), with optional mutability\n(the boolean is true when mutable)",121,null],[6,"Mrk","","A mark represents a unique id associated with a macro expansion",null,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","","",null,null],[6,"BinOp","","",null,null],[6,"Stmt","","A statement",null,null],[6,"Decl","","",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],[6,"StructField","","",null,null],[17,"EMPTY_CTXT","","",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],[8,"NodeIdAssigner","","",null,null],[10,"next_node_id","","",122,null],[10,"peek_node_id","","",122,null],[11,"hash","","",30,null],[11,"cmp","","",30,null],[11,"partial_cmp","","",30,null],[11,"lt","","",30,null],[11,"le","","",30,null],[11,"gt","","",30,null],[11,"ge","","",30,null],[11,"eq","","",30,null],[11,"ne","","",30,null],[11,"clone","","",30,null],[11,"decode","","",31,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",31,null],[11,"fmt","","",31,null],[11,"hash","","",31,null],[11,"eq","","",31,null],[11,"ne","","",31,null],[11,"clone","","",31,null],[11,"clone","","",32,null],[11,"as_str","","",30,null],[11,"fmt","","",30,null],[11,"fmt","","",30,null],[11,"encode","","",30,null],[11,"decode","","",30,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"new","","",32,{"inputs":[{"name":"name"},{"name":"syntaxcontext"}],"output":{"name":"ident"}}],[11,"with_empty_ctxt","","",32,{"inputs":[{"name":"name"}],"output":{"name":"ident"}}],[11,"eq","","",32,null],[11,"hash","","",32,null],[11,"fmt","","",32,null],[11,"fmt","","",32,null],[11,"encode","","",32,null],[11,"decode","","",32,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[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,"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,"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,"fmt","","",35,null],[11,"fmt","","",35,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","","",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,"none","","",80,{"inputs":[],"output":{"name":"pathparameters"}}],[11,"is_empty","","",80,null],[11,"has_lifetimes","","",80,null],[11,"has_types","","",80,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.",80,null],[11,"lifetimes","","",80,null],[11,"bindings","","",80,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","","",81,null],[11,"hash","","",81,null],[11,"decode","","",81,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",81,null],[11,"eq","","",81,null],[11,"ne","","",81,null],[11,"clone","","",81,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,"clone","","",82,null],[11,"fmt","","",39,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","","",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,"is_lt_parameterized","","",40,null],[11,"is_type_parameterized","","",40,null],[11,"is_parameterized","","",40,null],[11,"default","","",40,{"inputs":[],"output":{"name":"generics"}}],[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","","",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","","",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","","",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","","",84,null],[11,"hash","","",84,null],[11,"decode","","",84,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",84,null],[11,"clone","","",84,null],[11,"eq","","",84,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","","",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","","",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,"fmt","","",87,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","","",88,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,"to_string","","",88,null],[11,"lazy","","",88,null],[11,"is_shift","","",88,null],[11,"is_comparison","","",88,null],[11,"is_by_value","","Returns `true` if the binary operator takes its arguments by value",88,null],[11,"fmt","","",89,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,"is_by_value","","Returns `true` if the unary operator takes its argument by value",89,{"inputs":[{"name":"unop"}],"output":{"name":"bool"}}],[11,"to_string","","",89,{"inputs":[{"name":"unop"}],"output":{"name":"str"}}],[11,"fmt","","",123,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,"id","","",90,null],[11,"attrs","","",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,"attrs","","",49,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,"attrs","","",124,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","","",93,null],[11,"hash","","",93,null],[11,"decode","","",93,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",93,null],[11,"eq","","",93,null],[11,"ne","","",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,"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,"attrs","","",52,null],[11,"fmt","","",52,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,"ne","","",95,null],[11,"clone","","",95,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","","",96,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","","",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,"open_token","","Returns the opening delimiter as a token.",54,null],[11,"close_token","","Returns the closing delimiter as a token.",54,null],[11,"open_tt","","Returns the opening delimiter as a token tree.",54,null],[11,"close_tt","","Returns the closing delimiter as a token tree.",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","","",97,null],[11,"hash","","",97,null],[11,"decode","","",97,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",97,null],[11,"eq","","",97,null],[11,"clone","","",97,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,"len","","",98,null],[11,"get_tt","","",98,null],[11,"get_span","","Returns the `Span` corresponding to this token tree.",98,null],[11,"parse","","Use this token tree as a matcher to parse given tts.",98,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","","",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,"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,"ne","","",100,null],[11,"clone","","",100,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,"is_str","","Returns true if this literal is a string and false otherwise.",101,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","","",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,"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","","",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,"hash","","",104,null],[11,"decode","","",104,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",104,null],[11,"eq","","",104,null],[11,"clone","","",104,null],[11,"fmt","","",104,null],[11,"fmt","","",104,null],[11,"ty_to_string","","",104,null],[11,"val_to_string","","",104,null],[11,"ty_max","","",104,null],[11,"bit_width","","",104,null],[11,"hash","","",105,null],[11,"decode","","",105,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",105,null],[11,"eq","","",105,null],[11,"clone","","",105,null],[11,"ty_to_string","","",105,null],[11,"val_to_string","","",105,null],[11,"ty_max","","",105,null],[11,"bit_width","","",105,null],[11,"fmt","","",105,null],[11,"fmt","","",105,null],[11,"hash","","",106,null],[11,"decode","","",106,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",106,null],[11,"eq","","",106,null],[11,"clone","","",106,null],[11,"fmt","","",106,null],[11,"fmt","","",106,null],[11,"ty_to_string","","",106,null],[11,"bit_width","","",106,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,"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","","",62,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","","",107,null],[11,"hash","","",107,null],[11,"decode","","",107,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",107,null],[11,"eq","","",107,null],[11,"ne","","",107,null],[11,"clone","","",107,null],[11,"fmt","","",108,null],[11,"hash","","",108,null],[11,"decode","","",108,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",108,null],[11,"eq","","",108,null],[11,"clone","","",108,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],[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,"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,"new_self","","",66,{"inputs":[{"name":"span"},{"name":"mutability"},{"name":"ident"}],"output":{"name":"arg"}}],[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,"ne","","",67,null],[11,"clone","","",67,null],[11,"fmt","","",109,null],[11,"hash","","",109,null],[11,"decode","","",109,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",109,null],[11,"eq","","",109,null],[11,"clone","","",109,null],[11,"fmt","","",110,null],[11,"hash","","",110,null],[11,"decode","","",110,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",110,null],[11,"eq","","",110,null],[11,"clone","","",110,null],[11,"fmt","","",109,null],[11,"hash","","",111,null],[11,"decode","","",111,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",111,null],[11,"eq","","",111,null],[11,"clone","","",111,null],[11,"fmt","","",111,null],[11,"fmt","","",112,null],[11,"hash","","",112,null],[11,"decode","","",112,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",112,null],[11,"eq","","",112,null],[11,"ne","","",112,null],[11,"clone","","",112,null],[11,"span","","",112,null],[11,"fmt","","",113,null],[11,"hash","","",113,null],[11,"decode","","",113,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",113,null],[11,"eq","","",113,null],[11,"ne","","",113,null],[11,"clone","","",113,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","","",69,null],[11,"hash","","",69,null],[11,"decode","","",69,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",69,null],[11,"eq","","",69,null],[11,"ne","","",69,null],[11,"clone","","",69,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","","",114,null],[11,"hash","","",114,null],[11,"decode","","",114,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",114,null],[11,"eq","","",114,null],[11,"ne","","",114,null],[11,"clone","","",114,null],[11,"id","","",114,null],[11,"name","","",114,null],[11,"rename","","",114,null],[11,"fmt","","",115,null],[11,"hash","","",115,null],[11,"decode","","",115,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",115,null],[11,"eq","","",115,null],[11,"ne","","",115,null],[11,"clone","","",115,null],[11,"fmt","","",116,null],[11,"hash","","",116,null],[11,"decode","","",116,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",116,null],[11,"eq","","",116,null],[11,"clone","","",116,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,"ne","","",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,"ne","","",73,null],[11,"clone","","",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,"ne","","",74,null],[11,"clone","","",74,null],[11,"fmt","","",75,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","","",117,null],[11,"hash","","",117,null],[11,"decode","","",117,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",117,null],[11,"eq","","",117,null],[11,"clone","","",117,null],[11,"inherit_from","","",117,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,"ne","","",76,null],[11,"clone","","",76,null],[11,"ident","","",76,null],[11,"fmt","","",118,null],[11,"hash","","",118,null],[11,"decode","","",118,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",118,null],[11,"eq","","",118,null],[11,"ne","","",118,null],[11,"clone","","",118,null],[11,"is_unnamed","","",118,null],[11,"visibility","","",118,null],[11,"fmt","","",119,null],[11,"hash","","",119,null],[11,"decode","","",119,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",119,null],[11,"eq","","",119,null],[11,"ne","","",119,null],[11,"clone","","",119,null],[11,"fields","","",119,null],[11,"id","","",119,null],[11,"is_struct","","",119,null],[11,"is_tuple","","",119,null],[11,"is_unit","","",119,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,"attrs","","",77,null],[11,"fmt","","",120,null],[11,"hash","","",120,null],[11,"decode","","",120,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",120,null],[11,"eq","","",120,null],[11,"ne","","",120,null],[11,"clone","","",120,null],[11,"descriptive_variant","","",120,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,"ne","","",78,null],[11,"clone","","",78,null],[11,"fmt","","",121,null],[11,"hash","","",121,null],[11,"decode","","",121,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",121,null],[11,"eq","","",121,null],[11,"ne","","",121,null],[11,"clone","","",121,null],[11,"descriptive_variant","","",121,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,"ne","","",79,null],[11,"clone","","",79,null],[0,"ast_util","syntex_syntax","",null,null],[3,"IdRange","syntex_syntax::ast_util","",null,null],[12,"min","","",125,null],[12,"max","","",125,null],[3,"IdVisitor","","A visitor that applies its operation to all of the node IDs\nin a visitable thing.",null,null],[12,"operation","","",126,null],[12,"visited_outermost","","",126,null],[3,"IdRangeComputingVisitor","","",null,null],[12,"result","","",127,null],[5,"path_name_i","","",null,null],[5,"is_path","","",null,{"inputs":[{"name":"p"}],"output":{"name":"bool"}}],[5,"ident_to_path","","",null,{"inputs":[{"name":"span"},{"name":"ident"}],"output":{"name":"path"}}],[5,"path_to_ident","","",null,{"inputs":[{"name":"path"}],"output":{"name":"option"}}],[5,"ident_to_pat","","",null,{"inputs":[{"name":"nodeid"},{"name":"span"},{"name":"ident"}],"output":{"name":"p"}}],[5,"impl_pretty_name","","Generate a "pretty" name for an `impl` from its type and trait.\nThis is designed so that symbols of `impl`'d methods give some\nhint of where they came from, (previously they would all just be\nlisted as `__extensions__::method_name::hash`, with no indication\nof the type).",null,{"inputs":[{"name":"option"},{"name":"option"}],"output":{"name":"ident"}}],[5,"struct_field_visibility","","",null,{"inputs":[{"name":"structfield"}],"output":{"name":"visibility"}}],[5,"compute_id_range_for_fn_body","","Computes the id range for a single fn body, ignoring nested items.",null,{"inputs":[{"name":"fnkind"},{"name":"fndecl"},{"name":"block"},{"name":"span"},{"name":"nodeid"}],"output":{"name":"idrange"}}],[5,"pat_is_ident","","Returns true if the given pattern consists solely of an identifier\nand false otherwise.",null,{"inputs":[{"name":"p"}],"output":{"name":"bool"}}],[5,"path_name_eq","","",null,{"inputs":[{"name":"path"},{"name":"path"}],"output":{"name":"bool"}}],[5,"segments_name_eq","","",null,null],[8,"IdVisitingOperation","","",null,null],[10,"visit_id","","",128,null],[11,"fmt","","",125,null],[11,"decode","","",125,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",125,null],[11,"clone","","",125,null],[11,"max","","",125,{"inputs":[],"output":{"name":"idrange"}}],[11,"empty","","",125,null],[11,"add","","",125,null],[11,"visit_mod","","",126,null],[11,"visit_foreign_item","","",126,null],[11,"visit_item","","",126,null],[11,"visit_local","","",126,null],[11,"visit_block","","",126,null],[11,"visit_stmt","","",126,null],[11,"visit_pat","","",126,null],[11,"visit_expr","","",126,null],[11,"visit_ty","","",126,null],[11,"visit_generics","","",126,null],[11,"visit_fn","","",126,null],[11,"visit_struct_field","","",126,null],[11,"visit_variant_data","","",126,null],[11,"visit_trait_item","","",126,null],[11,"visit_impl_item","","",126,null],[11,"visit_lifetime","","",126,null],[11,"visit_lifetime_def","","",126,null],[11,"visit_trait_ref","","",126,null],[11,"new","","",127,{"inputs":[],"output":{"name":"idrangecomputingvisitor"}}],[11,"result","","",127,null],[11,"visit_id","","",127,null],[0,"attr","syntex_syntax","",null,null],[3,"Stability","syntex_syntax::attr","Represents the #[stable], #[unstable] and #[rustc_deprecated] attributes.",null,null],[12,"level","","",129,null],[12,"feature","","",129,null],[12,"rustc_depr","","",129,null],[3,"RustcDeprecation","","",null,null],[12,"since","","",130,null],[12,"reason","","",130,null],[3,"Deprecation","","",null,null],[12,"since","","",131,null],[12,"note","","",131,null],[4,"InlineAttr","","",null,null],[13,"None","","",132,null],[13,"Hint","","",132,null],[13,"Always","","",132,null],[13,"Never","","",132,null],[4,"StabilityLevel","","The available stability levels.",null,null],[13,"Unstable","","",133,null],[12,"reason","syntex_syntax::attr::StabilityLevel","",133,null],[12,"issue","","",133,null],[13,"Stable","syntex_syntax::attr","",133,null],[12,"since","syntex_syntax::attr::StabilityLevel","",133,null],[4,"ReprAttr","syntex_syntax::attr","",null,null],[13,"ReprAny","","",134,null],[13,"ReprInt","","",134,null],[13,"ReprExtern","","",134,null],[13,"ReprPacked","","",134,null],[13,"ReprSimd","","",134,null],[4,"IntType","","",null,null],[13,"SignedInt","","",135,null],[13,"UnsignedInt","","",135,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_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_attr_outer","","Returns an outer attribute with the given value.",null,{"inputs":[{"name":"attrid"},{"name":"p"}],"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"}}],[6,"ThinAttributes","","A list of attributes, behind a optional box as\na space optimization.",null,null],[8,"AttrMetaMethods","","",null,null],[11,"check_name","","",136,null],[10,"name","","Retrieve the name of the meta item, e.g. `foo` in `#[foo]`,\n`#[foo="bar"]` and `#[foo(bar)]`",136,null],[10,"value_str","","Gets the string value if self is a MetaItemKind::NameValue variant\ncontaining a string, otherwise None.",136,null],[10,"meta_item_list","","Gets a list of inner meta items from a list MetaItem type.",136,null],[10,"span","","",136,null],[8,"AttributeMethods","","",null,null],[10,"meta","","",137,null],[10,"with_desugared_doc","","",137,null],[8,"ThinAttributesExt","","",null,null],[10,"map_thin_attrs","","",138,null],[10,"prepend","","",138,null],[10,"append","","",138,null],[10,"update","","",138,null],[10,"as_attr_slice","","",138,null],[10,"into_attr_vec","","",138,null],[8,"AttributesExt","","",null,null],[10,"into_thin_attrs","","",139,null],[8,"WithAttrs","","A cheap way to add Attributes to an AST node.",null,null],[10,"with_attrs","","",140,null],[11,"check_name","","",141,null],[11,"name","","",141,null],[11,"value_str","","",141,null],[11,"meta_item_list","","",141,null],[11,"span","","",141,null],[11,"name","","",142,null],[11,"value_str","","",142,null],[11,"meta_item_list","","",142,null],[11,"span","","",142,null],[11,"meta","","Extract the MetaItem from inside this Attribute.",141,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.)",141,null],[11,"eq","","",132,null],[11,"clone","","",132,null],[11,"hash","","",129,null],[11,"eq","","",129,null],[11,"ne","","",129,null],[11,"fmt","","",129,null],[11,"clone","","",129,null],[11,"decode","","",129,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",129,null],[11,"hash","","",133,null],[11,"fmt","","",133,null],[11,"clone","","",133,null],[11,"partial_cmp","","",133,null],[11,"lt","","",133,null],[11,"le","","",133,null],[11,"gt","","",133,null],[11,"ge","","",133,null],[11,"eq","","",133,null],[11,"ne","","",133,null],[11,"decode","","",133,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",133,null],[11,"hash","","",130,null],[11,"fmt","","",130,null],[11,"clone","","",130,null],[11,"partial_cmp","","",130,null],[11,"lt","","",130,null],[11,"le","","",130,null],[11,"gt","","",130,null],[11,"ge","","",130,null],[11,"eq","","",130,null],[11,"ne","","",130,null],[11,"decode","","",130,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",130,null],[11,"hash","","",131,null],[11,"fmt","","",131,null],[11,"clone","","",131,null],[11,"partial_cmp","","",131,null],[11,"lt","","",131,null],[11,"le","","",131,null],[11,"gt","","",131,null],[11,"ge","","",131,null],[11,"eq","","",131,null],[11,"ne","","",131,null],[11,"decode","","",131,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",131,null],[11,"is_unstable","","",133,null],[11,"is_stable","","",133,null],[11,"clone","","",134,null],[11,"decode","","",134,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",134,null],[11,"fmt","","",134,null],[11,"eq","","",134,null],[11,"ne","","",134,null],[11,"is_ffi_safe","","",134,null],[11,"clone","","",135,null],[11,"decode","","",135,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",135,null],[11,"fmt","","",135,null],[11,"eq","","",135,null],[11,"ne","","",135,null],[11,"hash","","",135,null],[11,"is_signed","","",135,null],[11,"map_thin_attrs","","",143,null],[11,"prepend","","",143,null],[11,"append","","",143,null],[11,"update","","",143,null],[11,"as_attr_slice","","",143,null],[11,"into_attr_vec","","",143,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,"BytePos","syntex_syntax::codemap","A byte offset. Keep this small (currently 32-bits), as AST contains\na lot of them.",null,null],[12,"0","","",144,null],[3,"CharPos","","A character offset. Because of multibyte utf8 characters, a byte offset\nis not equivalent to a character offset. The CodeMap will convert BytePos\nvalues to CharPos values as necessary.",null,null],[12,"0","","",145,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","","",146,null],[12,"hi","","",146,null],[12,"expn_id","","Information about where the macro came from, if this piece of\ncode was created by a macro expansion.",146,null],[3,"MultiSpan","","Spans are converted to MultiSpans just before error reporting, either automatically,\ngenerated by line grouping, or manually constructed.\nIn the latter case care should be taken to ensure that spans are ordered, disjoint,\nand point into the same FileMap.",null,null],[12,"spans","","",147,null],[3,"Spanned","","",null,null],[12,"node","","",148,null],[12,"span","","",148,null],[3,"Loc","","A source code location used for error reporting",null,null],[12,"file","","Information about the original source",149,null],[12,"line","","The (1-based) line number",149,null],[12,"col","","The (0-based) column offset",149,null],[3,"LocWithOpt","","A source code location used as the result of lookup_char_pos_adj",null,null],[12,"filename","","",150,null],[12,"line","","",150,null],[12,"col","","",150,null],[12,"file","","",150,null],[3,"FileMapAndLine","","",null,null],[12,"fm","","",151,null],[12,"line","","",151,null],[3,"FileMapAndBytePos","","",null,null],[12,"fm","","",152,null],[12,"pos","","",152,null],[3,"NameAndSpan","","",null,null],[12,"format","","The format with which the macro was invoked.",153,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.",153,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.",153,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 {}`",154,null],[12,"callee","","Information about the expansion.",154,null],[3,"ExpnId","","",null,null],[3,"LineInfo","","",null,null],[12,"line_index","","Index of line, starting from 0.",155,null],[12,"start_col","","Column in line where span begins, starting from 0.",155,null],[12,"end_col","","Column in line where span ends, starting from 0, exclusive.",155,null],[3,"FileLines","","",null,null],[12,"file","","",156,null],[12,"lines","","",156,null],[3,"MultiByteChar","","Identifies an offset of a multi-byte character in a FileMap",null,null],[12,"pos","","The absolute offset of the character in the CodeMap",157,null],[12,"bytes","","The number of bytes, >=2",157,null],[3,"FileMap","","A single source in the CodeMap.",null,null],[12,"name","","The name of the file that the source came from, source that doesn't\noriginate from files has names between angle brackets by convention,\ne.g. `<anon>`",158,null],[12,"src","","The complete source code",158,null],[12,"start_pos","","The start position of this source in the CodeMap",158,null],[12,"end_pos","","The end position of this source in the CodeMap",158,null],[12,"lines","","Locations of lines beginnings in the source code",158,null],[12,"multibyte_chars","","Locations of multi-byte characters in the source code",158,null],[3,"RealFileLoader","","A FileLoader that uses std::fs to load real files.",null,null],[3,"CodeMap","","",null,null],[12,"files","","",159,null],[3,"DistinctSources","","",null,null],[3,"MalformedCodemapPositions","","",null,null],[4,"ExpnFormat","","The source of expansion.",null,null],[13,"MacroAttribute","","e.g. #[derive(...)] <item>",160,null],[13,"MacroBang","","e.g. `format!()`",160,null],[4,"SpanLinesError","","",null,null],[13,"IllFormedSpan","","",161,null],[13,"DistinctSources","","",161,null],[4,"SpanSnippetError","","",null,null],[13,"IllFormedSpan","","",162,null],[13,"DistinctSources","","",162,null],[13,"MalformedForCodemap","","",162,null],[13,"SourceNotAvailable","","",162,null],[12,"filename","syntex_syntax::codemap::SpanSnippetError","",162,null],[5,"spanned","syntex_syntax::codemap","",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,"mk_sp","","",null,{"inputs":[{"name":"bytepos"},{"name":"bytepos"}],"output":{"name":"span"}}],[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"}}],[6,"FileName","","",null,null],[6,"FileLinesResult","","",null,null],[7,"SPAN_DEBUG","","",null,null],[17,"DUMMY_SP","","",null,null],[17,"COMMAND_LINE_SP","","",null,null],[17,"NO_EXPANSION","","",null,null],[17,"COMMAND_LINE_EXPN","","",null,null],[8,"Pos","","",null,null],[10,"from_usize","","",163,{"inputs":[{"name":"usize"}],"output":{"name":"self"}}],[10,"to_usize","","",163,null],[8,"FileLoader","","An abstraction over the fs operations used by the Parser.",null,null],[10,"file_exists","","Query the existence of a file.",164,null],[10,"read_file","","Read the contents of an UTF-8 file into memory.",164,null],[11,"fmt","","",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,"hash","","",144,null],[11,"eq","","",144,null],[11,"ne","","",144,null],[11,"clone","","",144,null],[11,"fmt","","",145,null],[11,"partial_cmp","","",145,null],[11,"lt","","",145,null],[11,"le","","",145,null],[11,"gt","","",145,null],[11,"ge","","",145,null],[11,"hash","","",145,null],[11,"eq","","",145,null],[11,"ne","","",145,null],[11,"clone","","",145,null],[11,"from_usize","","",144,{"inputs":[{"name":"usize"}],"output":{"name":"bytepos"}}],[11,"to_usize","","",144,null],[11,"add","","",144,null],[11,"sub","","",144,null],[11,"encode","","",144,null],[11,"decode","","",144,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"from_usize","","",145,{"inputs":[{"name":"usize"}],"output":{"name":"charpos"}}],[11,"to_usize","","",145,null],[11,"add","","",145,null],[11,"sub","","",145,null],[11,"eq","","",146,null],[11,"ne","","",146,null],[11,"hash","","",146,null],[11,"clone","","",146,null],[11,"clone","","",147,null],[11,"substitute_dummy","","Returns `self` if `self` is not the dummy span, and `other` otherwise.",146,null],[11,"contains","","",146,null],[11,"source_equal","","Return true if the spans are equal with regards to the source text.",146,null],[11,"merge","","Returns `Some(span)`, a union of `self` and `other`, on overlap.",146,null],[11,"trim_start","","Returns `Some(span)`, where the start is trimmed by the end of `other`",146,null],[11,"fmt","","",148,null],[11,"hash","","",148,null],[11,"decode","","",148,{"inputs":[{"name":"__dt"}],"output":{"name":"result"}}],[11,"encode","","",148,null],[11,"eq","","",148,null],[11,"ne","","",148,null],[11,"clone","","",148,null],[11,"encode","","",146,null],[11,"decode","","",146,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"fmt","","",146,null],[11,"new","","",147,{"inputs":[],"output":{"name":"multispan"}}],[11,"to_span_bounds","","",147,null],[11,"push_merge","","Merges or inserts the given span into itself.",147,null],[11,"push_trim","","Inserts the given span into itself, for use with `end_highlight_lines`.",147,null],[11,"from","","",147,{"inputs":[{"name":"span"}],"output":{"name":"multispan"}}],[11,"fmt","","",149,null],[11,"fmt","","",150,null],[11,"fmt","","",151,null],[11,"fmt","","",152,null],[11,"eq","","",160,null],[11,"ne","","",160,null],[11,"fmt","","",160,null],[11,"hash","","",160,null],[11,"clone","","",160,null],[11,"fmt","","",153,null],[11,"hash","","",153,null],[11,"clone","","",153,null],[11,"name","","",153,null],[11,"fmt","","",154,null],[11,"hash","","",154,null],[11,"decode","","",165,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",165,null],[11,"hash","","",165,null],[11,"fmt","","",165,null],[11,"clone","","",165,null],[11,"eq","","",165,null],[11,"ne","","",165,null],[11,"from_u32","","",165,{"inputs":[{"name":"u32"}],"output":{"name":"expnid"}}],[11,"into_u32","","",165,null],[11,"eq","","",155,null],[11,"ne","","",155,null],[11,"fmt","","",155,null],[11,"clone","","",155,null],[11,"eq","","",157,null],[11,"ne","","",157,null],[11,"decode","","",157,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",157,null],[11,"clone","","",157,null],[11,"encode","","",158,null],[11,"decode","","",158,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"fmt","","",158,null],[11,"next_line","","EFFECT: register a start-of-line offset in the\ntable of line-beginnings.\nUNCHECKED INVARIANT: these offsets must be added in the right\norder and must be in the right places; there is shared knowledge\nabout what ends a line between this file and parse.rs\nWARNING: pos param here is the offset relative to start of CodeMap,\nand CodeMap will append a newline when adding a filemap without a newline at the end,\nso the safe way to call this is with value calculated as\nfilemap.start_pos + newline_offset_relative_to_the_start_of_filemap.",158,null],[11,"get_line","","get a line from the list of pre-computed line-beginnings.\nline-number here is 0-based.",158,null],[11,"record_multibyte_char","","",158,null],[11,"is_real_file","","",158,null],[11,"is_imported","","",158,null],[11,"file_exists","","",166,null],[11,"read_file","","",166,null],[11,"new","","",159,{"inputs":[],"output":{"name":"codemap"}}],[11,"with_file_loader","","",159,{"inputs":[{"name":"box"}],"output":{"name":"codemap"}}],[11,"file_exists","","",159,null],[11,"load_file","","",159,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.",159,null],[11,"new_filemap_and_lines","","Creates a new filemap and sets its line information.",159,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.",159,null],[11,"mk_substr_filename","","",159,null],[11,"lookup_char_pos","","Lookup source information about a BytePos",159,null],[11,"lookup_char_pos_adj","","",159,null],[11,"span_to_string","","",159,null],[11,"span_to_expanded_string","","Returns a formatted string showing the expansion chain of a span",159,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.",159,null],[11,"source_callee","","Return the source callee.",159,null],[11,"span_to_filename","","",159,null],[11,"span_to_lines","","",159,null],[11,"span_to_snippet","","",159,null],[11,"custom_group_spans","","Groups and sorts spans by lines into `MultiSpan`s, where `push` adds them to their group,\nspecifying the unification behaviour for overlapping spans.\nSpans overflowing a line are put into their own one-element-group.",159,null],[11,"group_spans","","Groups and sorts spans by lines into `MultiSpan`s, merging overlapping spans.\nSpans overflowing a line are put into their own one-element-group.",159,null],[11,"end_group_spans","","Like `group_spans`, but trims overlapping spans instead of\nmerging them (for use with `end_highlight_lines`)",159,null],[11,"get_filemap","","",159,null],[11,"lookup_byte_offset","","For a global BytePos compute the local offset within the containing FileMap",159,null],[11,"bytepos_to_file_charpos","","Converts an absolute BytePos to a CharPos relative to the filemap.",159,null],[11,"record_expansion","","",159,null],[11,"with_expn_info","","",159,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]`).",159,null],[11,"count_lines","","",159,null],[11,"fmt","","",161,null],[11,"eq","","",161,null],[11,"ne","","",161,null],[11,"clone","","",161,null],[11,"fmt","","",162,null],[11,"eq","","",162,null],[11,"ne","","",162,null],[11,"clone","","",162,null],[11,"fmt","","",167,null],[11,"eq","","",167,null],[11,"ne","","",167,null],[11,"clone","","",167,null],[11,"fmt","","",168,null],[11,"eq","","",168,null],[11,"ne","","",168,null],[11,"clone","","",168,null],[0,"config","syntex_syntax","",null,null],[3,"CfgDiagReal","syntex_syntax::config","",null,null],[12,"diag","","",169,null],[12,"feature_gated_cfgs","","",169,null],[5,"strip_unconfigured_items","","",null,{"inputs":[{"name":"handler"},{"name":"crate"},{"name":"vec"}],"output":{"name":"crate"}}],[5,"strip_items","","",null,{"inputs":[{"name":"handler"},{"name":"crate"},{"name":"f"}],"output":{"name":"crate"}}],[8,"CfgDiag","","",null,null],[10,"emit_error","","",170,null],[10,"flag_gated","","",170,null],[11,"emit_error","","",169,null],[11,"flag_gated","","",169,null],[0,"entry","syntex_syntax","",null,null],[4,"EntryPointType","syntex_syntax::entry","",null,null],[13,"None","","",171,null],[13,"MainNamed","","",171,null],[13,"MainAttr","","",171,null],[13,"Start","","",171,null],[13,"OtherMain","","",171,null],[5,"entry_point_type","","",null,{"inputs":[{"name":"item"},{"name":"usize"}],"output":{"name":"entrypointtype"}}],[0,"feature_gate","syntex_syntax","Feature gating",null,null],[3,"GatedCfg","syntex_syntax::feature_gate","",null,null],[3,"Features","","A set of features to be used by later passes.",null,null],[12,"unboxed_closures","","",172,null],[12,"rustc_diagnostic_macros","","",172,null],[12,"allow_quote","","",172,null],[12,"allow_asm","","",172,null],[12,"allow_log_syntax","","",172,null],[12,"allow_concat_idents","","",172,null],[12,"allow_trace_macros","","",172,null],[12,"allow_internal_unstable","","",172,null],[12,"allow_custom_derive","","",172,null],[12,"allow_placement_in","","",172,null],[12,"allow_box","","",172,null],[12,"allow_pushpop_unsafe","","",172,null],[12,"simd_ffi","","",172,null],[12,"unmarked_api","","",172,null],[12,"declared_stable_lang_features","","spans of #![feature] attrs for stable language features. for error reporting",172,null],[12,"declared_lib_features","","#![feature] attrs for non-language (library) features",172,null],[12,"const_fn","","",172,null],[12,"const_indexing","","",172,null],[12,"static_recursion","","",172,null],[12,"default_type_parameter_fallback","","",172,null],[12,"type_macros","","",172,null],[12,"cfg_target_feature","","",172,null],[12,"cfg_target_vendor","","",172,null],[12,"cfg_target_thread_local","","",172,null],[12,"augmented_assignments","","",172,null],[12,"braced_empty_structs","","",172,null],[12,"staged_api","","",172,null],[12,"stmt_expr_attributes","","",172,null],[12,"deprecated","","",172,null],[4,"GatedCfgAttr","","",null,null],[13,"GatedCfg","","",173,null],[13,"GatedAttr","","",173,null],[4,"AttributeType","","",null,null],[13,"Normal","","Normal, builtin attribute that is consumed\nby the compiler before the unused_attribute check",174,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",174,null],[13,"CrateLevel","","Builtin attribute that is only allowed at the crate level",174,null],[4,"AttributeGate","","",null,null],[13,"Gated","","Is gated by a given feature gate and reason",175,null],[13,"Ungated","","Ungated attribute, can be used on all release channels",175,null],[4,"GateIssue","","",null,null],[13,"Language","","",176,null],[13,"Library","","",176,null],[4,"UnstableFeatures","","",null,null],[13,"Disallow","","Hard errors for unstable features are active, as on\nbeta/stable channels.",177,null],[13,"Allow","","Allow features to me activated, as on nightly.",177,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.",177,null],[5,"check_for_box_syntax","","",null,{"inputs":[{"name":"option"},{"name":"handler"},{"name":"span"}],"output":null}],[5,"check_for_placement_in","","",null,{"inputs":[{"name":"option"},{"name":"handler"},{"name":"span"}],"output":null}],[5,"check_for_pushpop_syntax","","",null,{"inputs":[{"name":"option"},{"name":"handler"},{"name":"span"}],"output":null}],[5,"emit_feature_err","","",null,{"inputs":[{"name":"handler"},{"name":"str"},{"name":"span"},{"name":"gateissue"},{"name":"str"}],"output":null}],[5,"check_crate_macros","","",null,{"inputs":[{"name":"codemap"},{"name":"handler"},{"name":"crate"}],"output":{"name":"features"}}],[5,"check_crate","","",null,null],[17,"KNOWN_ATTRIBUTES","","",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],[11,"eq","","",173,null],[11,"ne","","",173,null],[11,"fmt","","",173,null],[11,"eq","","",178,null],[11,"ne","","",178,null],[11,"fmt","","",178,null],[11,"cmp","","",173,null],[11,"partial_cmp","","",173,null],[11,"check_and_emit","","",173,null],[11,"gate","","",178,{"inputs":[{"name":"metaitem"}],"output":{"name":"option"}}],[11,"fmt","","",174,null],[11,"clone","","",174,null],[11,"eq","","",174,null],[11,"fmt","","",175,null],[11,"clone","","",175,null],[11,"eq","","",175,null],[11,"ne","","",175,null],[11,"new","","",172,{"inputs":[],"output":{"name":"features"}}],[11,"clone","","",177,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":"thinattributes"},{"name":"t"}],"output":{"name":"thinattributes"}}],[5,"noop_fold_arm","","",null,{"inputs":[{"name":"arm"},{"name":"t"}],"output":{"name":"arm"}}],[5,"noop_fold_decl","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"smallvector"}}],[5,"noop_fold_ty_binding","","",null,{"inputs":[{"name":"p"},{"name":"t"}],"output":{"name":"p"}}],[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":"p"},{"name":"t"}],"output":{"name":"p"}}],[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_explicit_self_kind","","",null,{"inputs":[{"name":"selfkind"},{"name":"t"}],"output":{"name":"selfkind"}}],[5,"noop_fold_explicit_self","","",null,{"inputs":[{"name":"explicitself"},{"name":"t"}],"output":{"name":"explicitself"}}],[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":"p"},{"name":"t"}],"output":{"name":"smallvector"}}],[5,"noop_fold_impl_item","","",null,{"inputs":[{"name":"p"},{"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":"p"},{"name":"t"}],"output":{"name":"p"}}],[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"}}],[8,"Folder","","",null,null],[11,"fold_crate","","",179,null],[11,"fold_meta_items","","",179,null],[11,"fold_meta_item","","",179,null],[11,"fold_view_path","","",179,null],[11,"fold_foreign_item","","",179,null],[11,"fold_item","","",179,null],[11,"fold_item_simple","","",179,null],[11,"fold_struct_field","","",179,null],[11,"fold_item_kind","","",179,null],[11,"fold_trait_item","","",179,null],[11,"fold_impl_item","","",179,null],[11,"fold_fn_decl","","",179,null],[11,"fold_block","","",179,null],[11,"fold_stmt","","",179,null],[11,"fold_arm","","",179,null],[11,"fold_pat","","",179,null],[11,"fold_decl","","",179,null],[11,"fold_expr","","",179,null],[11,"fold_opt_expr","","",179,null],[11,"fold_exprs","","",179,null],[11,"fold_ty","","",179,null],[11,"fold_ty_binding","","",179,null],[11,"fold_mod","","",179,null],[11,"fold_foreign_mod","","",179,null],[11,"fold_variant","","",179,null],[11,"fold_ident","","",179,null],[11,"fold_usize","","",179,null],[11,"fold_path","","",179,null],[11,"fold_path_parameters","","",179,null],[11,"fold_angle_bracketed_parameter_data","","",179,null],[11,"fold_parenthesized_parameter_data","","",179,null],[11,"fold_local","","",179,null],[11,"fold_mac","","",179,null],[11,"fold_explicit_self","","",179,null],[11,"fold_explicit_self_kind","","",179,null],[11,"fold_lifetime","","",179,null],[11,"fold_lifetime_def","","",179,null],[11,"fold_attribute","","",179,null],[11,"fold_arg","","",179,null],[11,"fold_generics","","",179,null],[11,"fold_trait_ref","","",179,null],[11,"fold_poly_trait_ref","","",179,null],[11,"fold_variant_data","","",179,null],[11,"fold_lifetimes","","",179,null],[11,"fold_lifetime_defs","","",179,null],[11,"fold_ty_param","","",179,null],[11,"fold_ty_params","","",179,null],[11,"fold_tt","","",179,null],[11,"fold_tts","","",179,null],[11,"fold_token","","",179,null],[11,"fold_interpolated","","",179,null],[11,"fold_opt_lifetime","","",179,null],[11,"fold_opt_bounds","","",179,null],[11,"fold_bounds","","",179,null],[11,"fold_ty_param_bound","","",179,null],[11,"fold_mt","","",179,null],[11,"fold_field","","",179,null],[11,"fold_where_clause","","",179,null],[11,"fold_where_predicate","","",179,null],[11,"new_id","","",179,null],[11,"new_span","","",179,null],[0,"owned_slice","syntex_syntax","",null,null],[6,"OwnedSlice","syntex_syntax::owned_slice","A non-growable owned slice.",null,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","","",180,null],[5,"parse_crate_from_file","","",null,{"inputs":[{"name":"path"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"crate"}}],[5,"parse_crate_attrs_from_file","","",null,{"inputs":[{"name":"path"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"vec"}}],[5,"parse_crate_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"crate"}}],[5,"parse_crate_attrs_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"vec"}}],[5,"parse_expr_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"p"}}],[5,"parse_item_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"option"}}],[5,"parse_meta_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"p"}}],[5,"parse_stmt_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"option"}}],[5,"parse_tts_from_source_str","","",null,{"inputs":[{"name":"string"},{"name":"string"},{"name":"crateconfig"},{"name":"parsesess"}],"output":{"name":"vec"}}],[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,"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","","",181,null],[12,"token","","the current token:",181,null],[12,"span","","the span of the current token:",181,null],[12,"last_span","","the span of the prior token:",181,null],[12,"cfg","","",181,null],[12,"last_token","","the previous token or None (only stashed sometimes).",181,null],[12,"buffer","","",181,null],[12,"buffer_start","","",181,null],[12,"buffer_end","","",181,null],[12,"tokens_consumed","","",181,null],[12,"restrictions","","",181,null],[12,"quote_depth","","",181,null],[12,"reader","","",181,null],[12,"interner","","",181,null],[12,"obsolete_set","","The set of seen errors about obsolete syntax. Used to suppress\nextra detail when the same error is seen twice",181,null],[12,"mod_path_stack","","Used to determine the path to externally loaded source files",181,null],[12,"open_braces","","Stack of spans of open delimiters. Used for error message.",181,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.",181,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.",181,null],[12,"expected_tokens","","",181,null],[3,"ModulePath","","Information about the path to a module.",null,null],[12,"name","","",182,null],[12,"path_exists","","",182,null],[12,"result","","",182,null],[3,"ModulePathSuccess","","",null,null],[12,"path","","",183,null],[12,"owns_directory","","",183,null],[3,"ModulePathError","","",null,null],[12,"err_msg","","",184,null],[12,"help_msg","","",184,null],[4,"PathParsingMode","","How to parse a path. There are four different kinds of paths, all of which\nare parsed somewhat differently.",null,null],[13,"NoTypesAllowed","","A path with no type parameters; e.g. `foo::bar::Baz`",185,null],[13,"LifetimeAndTypesWithoutColons","","A path with a lifetime and type parameters, with no double colons\nbefore the type parameters; e.g. `foo::bar<'a>::Baz<T>`",185,null],[13,"LifetimeAndTypesWithColons","","A path with a lifetime and type parameters with double colons before\nthe type parameters; e.g. `foo::bar::<'a>::Baz::<T>`",185,null],[4,"BoundParsingMode","","How to parse a bound, whether to allow bound modifiers such as `?`.",null,null],[13,"Bare","","",186,null],[13,"Modified","","",186,null],[4,"ParsePub","","`pub` should be parsed in struct fields and not parsed in variant fields",null,null],[13,"Yes","","",187,null],[13,"No","","",187,null],[4,"TokenType","","",null,null],[13,"Token","","",188,null],[13,"Keyword","","",188,null],[13,"Operator","","",188,null],[4,"LhsExpr","","",null,null],[13,"NotYetParsed","","",189,null],[13,"AttributesParsed","","",189,null],[13,"AlreadyParsed","","",189,null],[17,"RESTRICTION_STMT_EXPR","","",null,null],[17,"RESTRICTION_NO_STRUCT_LITERAL","","",null,null],[11,"hash","","",190,null],[11,"cmp","","",190,null],[11,"partial_cmp","","",190,null],[11,"lt","","",190,null],[11,"le","","",190,null],[11,"gt","","",190,null],[11,"ge","","",190,null],[11,"clone","","",190,null],[11,"eq","","",190,null],[11,"ne","","",190,null],[11,"fmt","","",190,null],[11,"empty","","Returns an empty set of flags.",190,{"inputs":[],"output":{"name":"restrictions"}}],[11,"all","","Returns the set containing all flags.",190,{"inputs":[],"output":{"name":"restrictions"}}],[11,"bits","","Returns the raw value of the flags currently stored.",190,null],[11,"from_bits","","Convert from underlying bit representation, unless that\nrepresentation contains bits that do not correspond to a flag.",190,{"inputs":[{"name":"u8"}],"output":{"name":"option"}}],[11,"from_bits_truncate","","Convert from underlying bit representation, dropping any bits\nthat do not correspond to flags.",190,{"inputs":[{"name":"u8"}],"output":{"name":"restrictions"}}],[11,"is_empty","","Returns `true` if no flags are currently stored.",190,null],[11,"is_all","","Returns `true` if all flags are currently set.",190,null],[11,"intersects","","Returns `true` if there are flags common to both `self` and `other`.",190,null],[11,"contains","","Returns `true` all of the flags in `other` are contained within `self`.",190,null],[11,"insert","","Inserts the specified flags in-place.",190,null],[11,"remove","","Removes the specified flags in-place.",190,null],[11,"toggle","","Toggles the specified flags in-place.",190,null],[11,"bitor","","Returns the union of the two sets of flags.",190,null],[11,"bitxor","","Returns the left flags, but with all the right flags toggled.",190,null],[11,"bitand","","Returns the intersection between the two sets of flags.",190,null],[11,"sub","","Returns the set difference of the two sets of flags.",190,null],[11,"not","","Returns the complement of this set of flags.",190,null],[11,"from_iter","","",190,{"inputs":[{"name":"t"}],"output":{"name":"restrictions"}}],[11,"eq","","",185,null],[11,"clone","","",185,null],[11,"eq","","",186,null],[11,"clone","","",186,null],[11,"eq","","",187,null],[11,"clone","","",187,null],[11,"clone","","",188,null],[11,"eq","","",188,null],[11,"ne","","",188,null],[11,"from","","",189,{"inputs":[{"name":"option"}],"output":{"name":"self"}}],[11,"from","","",189,{"inputs":[{"name":"p"}],"output":{"name":"self"}}],[11,"new","","",181,{"inputs":[{"name":"parsesess"},{"name":"crateconfig"},{"name":"box"}],"output":{"name":"parser"}}],[11,"token_to_string","","Convert a token to a string using self's reader",181,{"inputs":[{"name":"token"}],"output":{"name":"string"}}],[11,"this_token_to_string","","Convert the current token to a string using self's reader",181,null],[11,"unexpected_last","","",181,null],[11,"unexpected","","",181,null],[11,"expect","","Expect and consume the token t. Signal an error if\nthe next token is not t.",181,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.",181,null],[11,"check_for_erroneous_unit_struct_expecting","","Check for erroneous `ident { }`; if matches, signal error and\nrecover (without consuming any expected input token). Returns\ntrue if and only if input was consumed for recovery.",181,null],[11,"commit_expr","","Commit to parsing a complete expression `e` expected to be\nfollowed by some token from the set edible + inedible. Recover\nfrom anticipated input errors, discarding erroneous characters.",181,null],[11,"commit_expr_expecting","","",181,null],[11,"commit_stmt","","Commit to parsing a complete statement `s`, which expects to be\nfollowed by some token from the set edible + inedible. Check\nfor recoverable input errors, discarding erroneous characters.",181,null],[11,"commit_stmt_expecting","","",181,null],[11,"parse_ident","","",181,null],[11,"parse_ident_or_self_type","","",181,null],[11,"parse_path_list_item","","",181,null],[11,"check","","Check if the next token is `tok`, and return `true` if so.",181,null],[11,"eat","","Consume token 'tok' if it exists. Returns true if the given\ntoken was present, false otherwise.",181,null],[11,"check_keyword","","",181,null],[11,"eat_keyword","","If the next token is the given keyword, eat it and return\ntrue. Otherwise, return false.",181,null],[11,"eat_keyword_noexpect","","",181,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.",181,null],[11,"check_strict_keywords","","Signal an error if the given string is a strict keyword",181,null],[11,"check_reserved_keywords","","Signal an error if the current token is a reserved keyword",181,null],[11,"expect_no_suffix","","",181,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.",181,null],[11,"parse_seq_to_before_gt_or_return","","",181,null],[11,"parse_seq_to_before_gt","","Parse a sequence bracketed by '<' and '>', stopping\nbefore the '>'.",181,null],[11,"parse_seq_to_gt","","",181,null],[11,"parse_seq_to_gt_or_return","","",181,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.",181,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.",181,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.",181,null],[11,"parse_enum_variant_seq","","Parse a sequence parameter of enum variant. For consistency purposes,\nthese should not be empty.",181,null],[11,"parse_seq","","",181,null],[11,"bump","","Advance the parser by one token",181,null],[11,"bump_and_get","","Advance the parser by one token and return the bumped token.",181,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 `<<`.",181,null],[11,"buffer_length","","",181,null],[11,"look_ahead","","",181,null],[11,"fatal","","",181,null],[11,"span_fatal","","",181,null],[11,"span_fatal_help","","",181,null],[11,"bug","","",181,null],[11,"warn","","",181,null],[11,"span_warn","","",181,null],[11,"span_err","","",181,null],[11,"span_bug","","",181,null],[11,"abort_if_errors","","",181,null],[11,"diagnostic","","",181,null],[11,"id_to_interned_str","","",181,null],[11,"token_is_bare_fn_keyword","","Is the current token one of the keywords that signals a bare function\ntype?",181,null],[11,"get_lifetime","","",181,null],[11,"parse_for_in_type","","",181,null],[11,"parse_ty_path","","",181,null],[11,"parse_ty_bare_fn","","parse a TyKind::BareFn type:",181,null],[11,"parse_obsolete_closure_kind","","Parses an obsolete closure kind (`&:`, `&mut:`, or `:`).",181,null],[11,"parse_unsafety","","",181,null],[11,"parse_trait_items","","Parse the items in a trait declaration",181,null],[11,"parse_mt","","Parse a possibly mutable type",181,null],[11,"parse_ret_ty","","Parse optional return type [ -> TY ] in function decl",181,null],[11,"parse_ty_sum","","Parse a type in a context where `T1+T2` is allowed.",181,null],[11,"parse_ty","","Parse a type.",181,null],[11,"parse_borrowed_pointee","","",181,null],[11,"parse_ptr","","",181,null],[11,"is_named_argument","","",181,null],[11,"parse_arg_general","","This version of parse arg doesn't necessarily require\nidentifier names.",181,null],[11,"parse_arg","","Parse a single function argument",181,null],[11,"parse_fn_block_arg","","Parse an argument in a lambda header e.g. |arg, arg|",181,null],[11,"maybe_parse_fixed_length_of_vec","","",181,null],[11,"lit_from_token","","Matches token_lit = LIT_INTEGER | ...",181,null],[11,"parse_lit","","Matches lit = true | false | token_lit",181,null],[11,"parse_pat_literal_maybe_minus","","matches '-' lit | lit",181,null],[11,"parse_qualified_path","","Parses qualified path.",181,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.",181,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)`",181,null],[11,"parse_path_segments_with_colons","","Examples:\n- `a::b::<T,U>::c`",181,null],[11,"parse_path_segments_without_types","","Examples:\n- `a::b::c`",181,null],[11,"parse_opt_lifetime","","parses 0 or 1 lifetime",181,null],[11,"parse_lifetime","","Parses a single lifetime\nMatches lifetime = LIFETIME",181,null],[11,"parse_lifetime_defs","","Parses `lifetime_defs = [ lifetime_defs { ',' lifetime_defs } ]` where `lifetime_def =\nlifetime [':' lifetimes]`",181,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....",181,null],[11,"parse_mutability","","Parse mutability declaration (mut/const/imm)",181,null],[11,"parse_field","","Parse ident COLON expr",181,null],[11,"mk_expr","","",181,null],[11,"mk_unary","","",181,null],[11,"mk_binary","","",181,null],[11,"mk_call","","",181,null],[11,"mk_index","","",181,null],[11,"mk_range","","",181,null],[11,"mk_field","","",181,null],[11,"mk_tup_field","","",181,null],[11,"mk_assign_op","","",181,null],[11,"mk_mac_expr","","",181,null],[11,"mk_lit_u32","","",181,null],[11,"parse_block_expr","","Parse a block or unsafe block",181,null],[11,"parse_dot_or_call_expr","","parse a.b or a(13) or a[4] or just a",181,null],[11,"parse_dot_or_call_expr_with","","",181,null],[11,"check_unknown_macro_variable","","",181,null],[11,"parse_sep_and_kleene_op","","Parse an optional separator followed by a Kleene-style\nrepetition token (+ or *).",181,null],[11,"parse_token_tree","","parse a single token tree from the input.",181,null],[11,"parse_all_token_trees","","",181,null],[11,"parse_prefix_expr","","Parse a prefix-unary-operator expr",181,null],[11,"parse_assoc_expr","","Parse an associative expression",181,null],[11,"parse_assoc_expr_with","","Parse an associative expression with operators of at least `min_prec` precedence",181,null],[11,"parse_if_expr","","Parse an 'if' or 'if let' expression ('if' token already eaten)",181,null],[11,"parse_if_let_expr","","Parse an 'if let' expression ('if' token already eaten)",181,null],[11,"parse_lambda_expr","","",181,null],[11,"parse_else_expr","","",181,null],[11,"parse_for_expr","","Parse a 'for' .. 'in' expression ('for' token already eaten)",181,null],[11,"parse_while_expr","","Parse a 'while' or 'while let' expression ('while' token already eaten)",181,null],[11,"parse_while_let_expr","","Parse a 'while let' expression ('while' token already eaten)",181,null],[11,"parse_loop_expr","","",181,null],[11,"parse_arm","","",181,null],[11,"parse_expr","","Parse an expression",181,null],[11,"with_res","","Evaluate the closure with restrictions in place.",181,null],[11,"parse_expr_res","","Parse an expression, subject to the given restrictions",181,null],[11,"parse_pat","","Parse a pattern.",181,null],[11,"parse_stmt","","Parse a statement. may include decl.",181,null],[11,"parse_block","","Parse a block. No inner attrs are allowed.",181,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()`.",181,null],[11,"parse_where_clause","","Parses an optional `where` clause and places it in `generics`.",181,null],[11,"parse_fn_decl","","Parse the argument list and result type of a function declaration",181,null],[11,"is_const_item","","true if we are looking at `const ID`, false for things like `const fn` etc",181,null],[11,"parse_fn_front_matter","","parses all the "front matter" for a `fn` declaration, up to\nand including the `fn` keyword:",181,null],[11,"parse_impl_item","","Parse an impl item.",181,null],[11,"parse_record_struct_body","","",181,null],[11,"parse_tuple_struct_body","","",181,null],[11,"parse_single_struct_field","","Parse a structure field declaration",181,null],[11,"submod_path_from_attr","","",181,null],[11,"default_submod_path","","Returns either a path to a module, or .",181,{"inputs":[{"name":"ident"},{"name":"path"},{"name":"codemap"}],"output":{"name":"modulepath"}}],[11,"parse_item","","",181,null],[11,"parse_crate_mod","","Parses a source module as a crate. This is the main\nentry point for the parser.",181,null],[11,"parse_optional_str","","",181,null],[11,"parse_str","","",181,null],[0,"lexer","syntex_syntax::parse","",null,null],[3,"TokenAndSpan","syntex_syntax::parse::lexer","",null,null],[12,"tok","","",191,null],[12,"sp","","",191,null],[3,"StringReader","","",null,null],[12,"span_diagnostic","","",192,null],[12,"pos","","The absolute offset within the codemap of the next character to read",192,null],[12,"last_pos","","The absolute offset within the codemap of the last character read(curr)",192,null],[12,"col","","The column of the next character to read",192,null],[12,"curr","","The last character to be read",192,null],[12,"filemap","","",192,null],[12,"peek_tok","","",192,null],[12,"peek_span","","",192,null],[5,"is_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","","",193,null],[12,"lines","","",193,null],[12,"pos","","",193,null],[3,"Literal","","",null,null],[12,"lit","","",194,null],[12,"pos","","",194,null],[4,"CommentStyle","","",null,null],[13,"Isolated","","No code on either side of each line of the comment",195,null],[13,"Trailing","","Code exists to the left of the comment",195,null],[13,"Mixed","","Code before /* foo */ and after the comment",195,null],[13,"BlankLine","","Just a manual blank line "\\n\\n", for layout",195,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","","",195,null],[11,"clone","","",195,null],[11,"clone","","",193,null],[11,"clone","","",194,null],[8,"Reader","syntex_syntax::parse::lexer","",null,null],[10,"is_eof","","",196,null],[10,"next_token","","",196,null],[10,"fatal","","Report a fatal error with the current span.",196,null],[10,"err","","Report a non-fatal error with the current span.",196,null],[10,"peek","","",196,null],[11,"real_token","","Get a token the parser cares about.",196,null],[11,"fmt","","",191,null],[11,"eq","","",191,null],[11,"ne","","",191,null],[11,"clone","","",191,null],[11,"is_eof","","",192,null],[11,"next_token","","Return the next token. EFFECT: advances the string_reader.",192,null],[11,"fatal","","",192,null],[11,"err","","",192,null],[11,"peek","","",192,null],[11,"new_raw","","For comments.rs, which hackily pokes into pos and curr",192,{"inputs":[{"name":"handler"},{"name":"rc"}],"output":{"name":"stringreader"}}],[11,"new","","",192,{"inputs":[{"name":"handler"},{"name":"rc"}],"output":{"name":"stringreader"}}],[11,"curr_is","","",192,null],[11,"fatal_span","","Report a fatal lexical error with a given span.",192,null],[11,"err_span","","Report a lexical error with a given span.",192,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`.",192,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).",192,null],[11,"name_from_to","","As name_from, with an explicit endpoint.",192,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.",192,null],[11,"nextch","","",192,null],[11,"nextch_is","","",192,null],[11,"nextnextch","","",192,null],[11,"nextnextch_is","","",192,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","","",197,null],[13,"Minus","","",197,null],[13,"Star","","",197,null],[13,"Slash","","",197,null],[13,"Percent","","",197,null],[13,"Caret","","",197,null],[13,"And","","",197,null],[13,"Or","","",197,null],[13,"Shl","","",197,null],[13,"Shr","","",197,null],[4,"DelimToken","","A delimiter token",null,null],[13,"Paren","","A round parenthesis: `(` or `)`",198,null],[13,"Bracket","","A square bracket: `[` or `]`",198,null],[13,"Brace","","A curly brace: `{` or `}`",198,null],[4,"IdentStyle","","",null,null],[13,"ModName","","`::` follows the identifier with no whitespace in-between.",199,null],[13,"Plain","","",199,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.",200,null],[4,"Lit","","",null,null],[13,"Byte","","",201,null],[13,"Char","","",201,null],[13,"Integer","","",201,null],[13,"Float","","",201,null],[13,"Str_","","",201,null],[13,"StrRaw","","",201,null],[13,"ByteStr","","",201,null],[13,"ByteStrRaw","","",201,null],[4,"Token","","",null,null],[13,"Eq","","",202,null],[13,"Lt","","",202,null],[13,"Le","","",202,null],[13,"EqEq","","",202,null],[13,"Ne","","",202,null],[13,"Ge","","",202,null],[13,"Gt","","",202,null],[13,"AndAnd","","",202,null],[13,"OrOr","","",202,null],[13,"Not","","",202,null],[13,"Tilde","","",202,null],[13,"BinOp","","",202,null],[13,"BinOpEq","","",202,null],[13,"At","","",202,null],[13,"Dot","","",202,null],[13,"DotDot","","",202,null],[13,"DotDotDot","","",202,null],[13,"Comma","","",202,null],[13,"Semi","","",202,null],[13,"Colon","","",202,null],[13,"ModSep","","",202,null],[13,"RArrow","","",202,null],[13,"LArrow","","",202,null],[13,"FatArrow","","",202,null],[13,"Pound","","",202,null],[13,"Dollar","","",202,null],[13,"Question","","",202,null],[13,"OpenDelim","","An opening delimiter, eg. `{`",202,null],[13,"CloseDelim","","A closing delimiter, eg. `}`",202,null],[13,"Literal","","",202,null],[13,"Ident","","",202,null],[13,"Underscore","","",202,null],[13,"Lifetime","","",202,null],[13,"Interpolated","","",202,null],[13,"DocComment","","Doc comment",202,null],[13,"MatchNt","","Parse a nonterminal (name to bind, name of NT, styles of their idents)",202,null],[13,"SubstNt","","A syntactic variable that will be filled in by macro expansion.",202,null],[13,"SpecialVarNt","","A macro variable with special meaning.",202,null],[13,"Whitespace","","Whitespace",202,null],[13,"Comment","","Comment",202,null],[13,"Shebang","","",202,null],[13,"Eof","","",202,null],[4,"Nonterminal","","For interpolation during macro expansion.",null,null],[13,"NtItem","","",203,null],[13,"NtBlock","","",203,null],[13,"NtStmt","","",203,null],[13,"NtPat","","",203,null],[13,"NtExpr","","",203,null],[13,"NtTy","","",203,null],[13,"NtIdent","","",203,null],[13,"NtMeta","","Stuff inside brackets for attributes",203,null],[13,"NtPath","","",203,null],[13,"NtTT","","",203,null],[13,"NtArm","","",203,null],[13,"NtImplItem","","",203,null],[13,"NtTraitItem","","",203,null],[13,"NtGenerics","","",203,null],[13,"NtWhereClause","","",203,null],[13,"NtArg","","",203,null],[5,"get_ident_interner","","",null,{"inputs":[],"output":{"name":"rc"}}],[5,"reset_ident_interner","","Reset the ident interner to its initial state.",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"}}],[5,"fresh_mark","","",null,{"inputs":[],"output":{"name":"mrk"}}],[0,"special_idents","","",null,null],[17,"invalid","syntex_syntax::parse::token::special_idents","",null,null],[17,"self_","","",null,null],[17,"statik","","",null,null],[17,"super_","","",null,null],[17,"static_lifetime","","",null,null],[17,"tt","","",null,null],[17,"matchers","","",null,null],[17,"clownshoe_abi","","",null,null],[17,"opaque","","",null,null],[17,"unnamed_field","","",null,null],[17,"type_self","","",null,null],[17,"prelude_import","","",null,null],[0,"special_names","syntex_syntax::parse::token","",null,null],[17,"invalid","syntex_syntax::parse::token::special_names","",null,null],[17,"self_","","",null,null],[17,"statik","","",null,null],[17,"super_","","",null,null],[17,"static_lifetime","","",null,null],[17,"tt","","",null,null],[17,"matchers","","",null,null],[17,"clownshoe_abi","","",null,null],[17,"opaque","","",null,null],[17,"unnamed_field","","",null,null],[17,"type_self","","",null,null],[17,"prelude_import","","",null,null],[0,"keywords","syntex_syntax::parse::token","All the valid words that have meaning in the Rust language.",null,null],[4,"Keyword","syntex_syntax::parse::token::keywords","",null,null],[13,"As","","",204,null],[13,"Break","","",204,null],[13,"Crate","","",204,null],[13,"Else","","",204,null],[13,"Enum","","",204,null],[13,"Extern","","",204,null],[13,"False","","",204,null],[13,"Fn","","",204,null],[13,"For","","",204,null],[13,"If","","",204,null],[13,"Impl","","",204,null],[13,"In","","",204,null],[13,"Let","","",204,null],[13,"Loop","","",204,null],[13,"Match","","",204,null],[13,"Mod","","",204,null],[13,"Move","","",204,null],[13,"Mut","","",204,null],[13,"Pub","","",204,null],[13,"Ref","","",204,null],[13,"Return","","",204,null],[13,"Static","","",204,null],[13,"SelfValue","","",204,null],[13,"SelfType","","",204,null],[13,"Struct","","",204,null],[13,"Super","","",204,null],[13,"True","","",204,null],[13,"Trait","","",204,null],[13,"Type","","",204,null],[13,"Unsafe","","",204,null],[13,"Use","","",204,null],[13,"While","","",204,null],[13,"Continue","","",204,null],[13,"Box","","",204,null],[13,"Const","","",204,null],[13,"Where","","",204,null],[13,"Virtual","","",204,null],[13,"Proc","","",204,null],[13,"Alignof","","",204,null],[13,"Become","","",204,null],[13,"Offsetof","","",204,null],[13,"Priv","","",204,null],[13,"Pure","","",204,null],[13,"Sizeof","","",204,null],[13,"Typeof","","",204,null],[13,"Unsized","","",204,null],[13,"Yield","","",204,null],[13,"Do","","",204,null],[13,"Abstract","","",204,null],[13,"Final","","",204,null],[13,"Override","","",204,null],[13,"Macro","","",204,null],[11,"eq","","",204,null],[11,"clone","","",204,null],[11,"to_name","","",204,null],[6,"IdentInterner","syntex_syntax::parse::token","",null,null],[17,"SELF_KEYWORD_NAME","","",null,null],[17,"SELF_KEYWORD_NAME_NUM","","",null,null],[11,"fmt","","",197,null],[11,"hash","","",197,null],[11,"eq","","",197,null],[11,"decode","","",197,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",197,null],[11,"clone","","",197,null],[11,"fmt","","",198,null],[11,"hash","","",198,null],[11,"eq","","",198,null],[11,"decode","","",198,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",198,null],[11,"clone","","",198,null],[11,"fmt","","",199,null],[11,"hash","","",199,null],[11,"eq","","",199,null],[11,"decode","","",199,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",199,null],[11,"clone","","",199,null],[11,"fmt","","",200,null],[11,"hash","","",200,null],[11,"eq","","",200,null],[11,"decode","","",200,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",200,null],[11,"clone","","",200,null],[11,"as_str","","",200,null],[11,"fmt","","",201,null],[11,"hash","","",201,null],[11,"eq","","",201,null],[11,"ne","","",201,null],[11,"decode","","",201,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",201,null],[11,"clone","","",201,null],[11,"short_name","","",201,null],[11,"fmt","","",202,null],[11,"hash","","",202,null],[11,"eq","","",202,null],[11,"ne","","",202,null],[11,"decode","","",202,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",202,null],[11,"clone","","",202,null],[11,"is_like_gt","","Returns `true` if the token starts with '>'.",202,null],[11,"can_begin_expr","","Returns `true` if the token can appear at the start of an expression.",202,null],[11,"is_lit","","Returns `true` if the token is any literal",202,null],[11,"is_ident","","Returns `true` if the token is an identifier.",202,null],[11,"is_interpolated","","Returns `true` if the token is interpolated.",202,null],[11,"is_path","","Returns `true` if the token is an interpolated path.",202,null],[11,"is_plain_ident","","Returns `true` if the token is a path that is not followed by a `::`\ntoken.",202,null],[11,"is_lifetime","","Returns `true` if the token is a lifetime.",202,null],[11,"is_mutability","","Returns `true` if the token is either the `mut` or `const` keyword.",202,null],[11,"to_binop","","Maps a token to its corresponding binary operator.",202,null],[11,"is_keyword","","Returns `true` if the token is a given keyword, `kw`.",202,null],[11,"is_keyword_allow_following_colon","","",202,null],[11,"is_any_keyword","","Returns `true` if the token is either a special identifier, or a strict\nor reserved keyword.",202,null],[11,"is_strict_keyword","","Returns `true` if the token may not appear as an identifier.",202,null],[11,"is_reserved_keyword","","Returns `true` if the token is a keyword that has been reserved for\npossible future use.",202,null],[11,"mtwt_eq","","Hygienic identifier equality comparison.",202,null],[11,"hash","","",203,null],[11,"eq","","",203,null],[11,"ne","","",203,null],[11,"decode","","",203,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",203,null],[11,"clone","","",203,null],[11,"fmt","","",203,null],[11,"cmp","","",205,null],[11,"partial_cmp","","",205,null],[11,"lt","","",205,null],[11,"le","","",205,null],[11,"gt","","",205,null],[11,"ge","","",205,null],[11,"hash","","",205,null],[11,"eq","","",205,null],[11,"ne","","",205,null],[11,"clone","","",205,null],[11,"new","","",205,{"inputs":[{"name":"str"}],"output":{"name":"internedstring"}}],[11,"new_from_name","","",205,{"inputs":[{"name":"name"}],"output":{"name":"internedstring"}}],[11,"deref","","",205,null],[11,"fmt","","",205,null],[11,"fmt","","",205,null],[11,"eq","","",205,null],[11,"ne","","",205,null],[11,"decode","","",205,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"encode","","",205,null],[0,"attr","syntex_syntax::parse","",null,null],[11,"parse_outer_attributes","syntex_syntax::parse::parser","Parse attributes that appear before an item",181,null],[11,"parse_attribute","","Matches `attribute = # ! [ meta_item ]`",181,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*",181,null],[11,"parse_meta_item","","matches meta_item = IDENT\n| IDENT = lit\n| IDENT meta_seq",181,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","","",206,null],[12,"trailing_sep_allowed","","",206,null],[5,"seq_sep_trailing_allowed","","",null,{"inputs":[{"name":"token"}],"output":{"name":"seqsep"}}],[5,"seq_sep_none","","",null,{"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","","",207,null],[13,"ExternCrateString","","",207,null],[8,"ParserObsoleteMethods","","",null,null],[10,"obsolete","","Reports an obsolete syntax non-fatal error.",208,null],[10,"report","","",208,null],[11,"hash","","",207,null],[11,"eq","","",207,null],[11,"clone","","",207,null],[11,"obsolete","syntex_syntax::parse::parser","Reports an obsolete syntax non-fatal error.",181,null],[11,"report","","",181,null],[6,"PResult","syntex_syntax::parse","",null,null],[11,"new","","",180,{"inputs":[],"output":{"name":"parsesess"}}],[11,"with_span_handler","","",180,{"inputs":[{"name":"handler"},{"name":"rc"}],"output":{"name":"parsesess"}}],[11,"codemap","","",180,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","","",209,null],[11,"partial_cmp","","",209,null],[11,"lt","","",209,null],[11,"le","","",209,null],[11,"gt","","",209,null],[11,"ge","","",209,null],[11,"eq","","",209,null],[11,"ne","","",209,null],[11,"hash","","",209,null],[11,"and_then","","Move out of the pointer.\nIntended for chaining transformations not covered by `map`.",209,null],[11,"map","","Transform the inner value, consuming `self` and producing a new `P<T>`.",209,null],[11,"deref","","",209,null],[11,"clone","","",209,null],[11,"fmt","","",209,null],[11,"fmt","","",209,null],[11,"fmt","","",209,null],[11,"decode","","",209,{"inputs":[{"name":"d"}],"output":{"name":"result"}}],[11,"encode","","",209,null],[11,"fmt","","",209,null],[11,"new","","",209,{"inputs":[],"output":{"name":"p"}}],[11,"empty","","",209,{"inputs":[],"output":{"name":"p"}}],[11,"from_vec","","",209,{"inputs":[{"name":"vec"}],"output":{"name":"p"}}],[11,"into_vec","","",209,null],[11,"as_slice","","",209,null],[11,"move_iter","","",209,null],[11,"map","","",209,null],[11,"deref","","",209,null],[11,"default","","",209,{"inputs":[],"output":{"name":"p"}}],[11,"clone","","",209,null],[11,"from","","",209,{"inputs":[{"name":"vec"}],"output":{"name":"self"}}],[11,"into","","",209,null],[11,"from_iter","","",209,{"inputs":[{"name":"i"}],"output":{"name":"p"}}],[11,"into_iter","","",209,null],[11,"encode","","",209,null],[11,"decode","","",209,{"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,"maybe_inject_crates_ref","syntex_syntax::std_inject","",null,{"inputs":[{"name":"crate"},{"name":"option"}],"output":{"name":"crate"}}],[5,"maybe_inject_prelude","","",null,{"inputs":[{"name":"parsesess"},{"name":"crate"}],"output":{"name":"crate"}}],[5,"no_core","","",null,{"inputs":[{"name":"crate"}],"output":{"name":"bool"}}],[5,"no_std","","",null,{"inputs":[{"name":"crate"}],"output":{"name":"bool"}}],[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":"crateconfig"},{"name":"crate"},{"name":"handler"}],"output":{"name":"crate"}}],[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()",210,null],[13,"Method","","fn foo(&self)",210,null],[13,"Closure","","|x, y| {}",210,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_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_explicit_self","","",null,{"inputs":[{"name":"v"},{"name":"explicitself"}],"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_decl","","",null,{"inputs":[{"name":"v"},{"name":"decl"}],"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}],[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","","",211,null],[11,"visit_ident","","",211,null],[11,"visit_mod","","",211,null],[11,"visit_foreign_item","","",211,null],[11,"visit_item","","",211,null],[11,"visit_local","","",211,null],[11,"visit_block","","",211,null],[11,"visit_stmt","","",211,null],[11,"visit_arm","","",211,null],[11,"visit_pat","","",211,null],[11,"visit_decl","","",211,null],[11,"visit_expr","","",211,null],[11,"visit_expr_post","","",211,null],[11,"visit_ty","","",211,null],[11,"visit_generics","","",211,null],[11,"visit_fn","","",211,null],[11,"visit_trait_item","","",211,null],[11,"visit_impl_item","","",211,null],[11,"visit_trait_ref","","",211,null],[11,"visit_ty_param_bound","","",211,null],[11,"visit_poly_trait_ref","","",211,null],[11,"visit_variant_data","","",211,null],[11,"visit_struct_field","","",211,null],[11,"visit_enum_def","","",211,null],[11,"visit_variant","","",211,null],[11,"visit_lifetime","","",211,null],[11,"visit_lifetime_def","","",211,null],[11,"visit_explicit_self","","",211,null],[11,"visit_mac","","",211,null],[11,"visit_path","","",211,null],[11,"visit_path_list_item","","",211,null],[11,"visit_path_segment","","",211,null],[11,"visit_path_parameters","","",211,null],[11,"visit_assoc_type_binding","","",211,null],[11,"visit_attribute","","",211,null],[11,"visit_macro_def","","",211,null],[11,"eq","","",210,null],[11,"ne","","",210,null],[11,"clone","","",210,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","","",212,null],[4,"Breaks","","",null,null],[13,"Consistent","","",213,null],[13,"Inconsistent","","",213,null],[4,"Token","","",null,null],[13,"String","","",214,null],[13,"Break","","",214,null],[13,"Begin","","",214,null],[13,"End","","",214,null],[13,"Eof","","",214,null],[4,"PrintStackBreak","","",null,null],[13,"Fits","","",215,null],[13,"Broken","","",215,null],[5,"tok_str","","",null,{"inputs":[{"name":"token"}],"output":{"name":"string"}}],[5,"buf_str","","",null,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","","",213,null],[11,"clone","","",213,null],[11,"clone","","",216,null],[11,"clone","","",217,null],[11,"clone","","",214,null],[11,"is_eof","","",214,null],[11,"is_hardbreak_tok","","",214,null],[11,"clone","","",215,null],[11,"clone","","",218,null],[11,"last_token","","",212,null],[11,"replace_last_token","","",212,null],[11,"pretty_print","","",212,null],[11,"check_stream","","",212,null],[11,"scan_push","","",212,null],[11,"scan_pop","","",212,null],[11,"scan_top","","",212,null],[11,"scan_pop_bottom","","",212,null],[11,"advance_right","","",212,null],[11,"advance_left","","",212,null],[11,"check_stack","","",212,null],[11,"print_newline","","",212,null],[11,"indent","","",212,null],[11,"get_top","","",212,null],[11,"print_str","","",212,null],[11,"print","","",212,null],[0,"pprust","syntex_syntax::print","",null,null],[3,"NoAnn","syntex_syntax::print::pprust","",null,null],[3,"CurrentCommentAndLiteral","","",null,null],[12,"cur_cmnt","","",219,null],[12,"cur_lit","","",219,null],[3,"State","","",null,null],[12,"s","","",220,null],[4,"AnnNode","","",null,null],[13,"NodeIdent","","",221,null],[13,"NodeName","","",221,null],[13,"NodeBlock","","",221,null],[13,"NodeItem","","",221,null],[13,"NodeSubItem","","",221,null],[13,"NodeExpr","","",221,null],[13,"NodePat","","",221,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,"ty_param_to_string","","",null,{"inputs":[{"name":"typaram"}],"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":"option"},{"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,"explicit_self_to_string","","",null,{"inputs":[{"name":"selfkind"}],"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","","",222,null],[11,"post","","",222,null],[8,"PrintState","","",null,null],[10,"writer","","",223,null],[10,"boxes","","",223,null],[10,"comments","","",223,null],[10,"cur_cmnt_and_lit","","",223,null],[10,"literals","","",223,null],[11,"word_space","","",223,null],[11,"popen","","",223,null],[11,"pclose","","",223,null],[11,"is_begin","","",223,null],[11,"is_end","","",223,null],[11,"is_bol","","",223,null],[11,"hardbreak_if_not_bol","","",223,null],[11,"rbox","","",223,null],[11,"ibox","","",223,null],[11,"end","","",223,null],[11,"commasep","","",223,null],[11,"next_lit","","",223,null],[11,"maybe_print_comment","","",223,null],[11,"print_comment","","",223,null],[11,"next_comment","","",223,null],[11,"print_literal","","",223,null],[11,"print_string","","",223,null],[11,"print_inner_attributes","","",223,null],[11,"print_inner_attributes_no_trailing_hardbreak","","",223,null],[11,"print_outer_attributes","","",223,null],[11,"print_inner_attributes_inline","","",223,null],[11,"print_outer_attributes_inline","","",223,null],[11,"print_either_attributes","","",223,null],[11,"print_attribute","","",223,null],[11,"print_attribute_inline","","",223,null],[11,"print_meta_item","","",223,null],[11,"space_if_not_bol","","",223,null],[11,"nbsp","","",223,null],[11,"clone","","",224,null],[11,"clone","","",219,null],[11,"new_from_input","","",220,{"inputs":[{"name":"codemap"},{"name":"handler"},{"name":"string"},{"name":"read"},{"name":"box"},{"name":"ppann"},{"name":"bool"}],"output":{"name":"state"}}],[11,"new","","",220,{"inputs":[{"name":"codemap"},{"name":"box"},{"name":"ppann"},{"name":"option"},{"name":"option"}],"output":{"name":"state"}}],[11,"writer","","",220,null],[11,"boxes","","",220,null],[11,"comments","","",220,null],[11,"cur_cmnt_and_lit","","",220,null],[11,"literals","","",220,null],[11,"cbox","","",220,null],[11,"word_nbsp","","",220,null],[11,"head","","",220,null],[11,"bopen","","",220,null],[11,"bclose_","","",220,null],[11,"bclose_maybe_open","","",220,null],[11,"bclose","","",220,null],[11,"in_cbox","","",220,null],[11,"break_offset_if_not_bol","","",220,null],[11,"synth_comment","","",220,null],[11,"commasep_cmnt","","",220,null],[11,"commasep_exprs","","",220,null],[11,"print_mod","","",220,null],[11,"print_foreign_mod","","",220,null],[11,"print_opt_lifetime","","",220,null],[11,"print_type","","",220,null],[11,"print_foreign_item","","",220,null],[11,"print_item","","Pretty-print an item",220,null],[11,"print_enum_def","","",220,null],[11,"print_variants","","",220,null],[11,"print_visibility","","",220,null],[11,"print_struct","","",220,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.",220,null],[11,"print_tts","","",220,null],[11,"print_variant","","",220,null],[11,"print_method_sig","","",220,null],[11,"print_trait_item","","",220,null],[11,"print_impl_item","","",220,null],[11,"print_stmt","","",220,null],[11,"print_block","","",220,null],[11,"print_block_unclosed","","",220,null],[11,"print_block_unclosed_with_attrs","","",220,null],[11,"print_block_unclosed_indent","","",220,null],[11,"print_block_with_attrs","","",220,null],[11,"print_block_maybe_unclosed","","",220,null],[11,"print_if","","",220,null],[11,"print_if_let","","",220,null],[11,"print_mac","","",220,null],[11,"check_expr_bin_needs_paren","","",220,null],[11,"print_expr_maybe_paren","","",220,null],[11,"print_expr","","",220,null],[11,"print_local_decl","","",220,null],[11,"print_decl","","",220,null],[11,"print_ident","","",220,null],[11,"print_usize","","",220,null],[11,"print_name","","",220,null],[11,"print_for_decl","","",220,null],[11,"print_pat","","",220,null],[11,"print_fn","","",220,null],[11,"print_fn_args","","",220,null],[11,"print_fn_args_and_ret","","",220,null],[11,"print_fn_block_args","","",220,null],[11,"print_capture_clause","","",220,null],[11,"print_bounds","","",220,null],[11,"print_lifetime","","",220,null],[11,"print_lifetime_def","","",220,null],[11,"print_generics","","",220,null],[11,"print_ty_param","","",220,null],[11,"print_where_clause","","",220,null],[11,"print_view_path","","",220,null],[11,"print_mutability","","",220,null],[11,"print_mt","","",220,null],[11,"print_arg","","",220,null],[11,"print_fn_output","","",220,null],[11,"print_ty_fn","","",220,null],[11,"maybe_print_trailing_comment","","",220,null],[11,"print_remaining_comments","","",220,null],[11,"print_opt_abi_and_extern_if_nondefault","","",220,null],[11,"print_extern_opt_abi","","",220,null],[11,"print_fn_header_info","","",220,null],[11,"print_unsafety","","",220,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","","",225,null],[12,"pat","","",225,null],[12,"items","","",225,null],[12,"impl_items","","",225,null],[12,"stmts","","",225,null],[12,"ty","","",225,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?",226,null],[12,"pending_renames","","What are the pending renames?",226,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","","",227,null],[12,"cfg","","",227,null],[12,"backtrace","","",227,null],[12,"ecfg","","",227,null],[12,"crate_root","","",227,null],[12,"feature_gated_cfgs","","",227,null],[12,"mod_path","","",227,null],[12,"exported_macros","","",227,null],[12,"syntax_env","","",227,null],[12,"recursion_count","","",227,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",228,null],[4,"Annotatable","","",null,null],[13,"Item","","",229,null],[13,"TraitItem","","",229,null],[13,"ImplItem","","",229,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.",230,null],[13,"MultiModifier","","A syntax extension that is attached to an item and modifies it\nin-place. More flexible version than Modifier.",230,null],[13,"NormalTT","","A normal, function-like syntax extension.",230,null],[13,"IdentTT","","A function-like syntax extension that has an extra ident before\nthe block.",230,null],[13,"MacroRulesTT","","Represents `macro_rules!` itself.",230,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","","",231,null],[8,"MultiItemModifier","","",null,null],[10,"expand","","",232,null],[8,"TTMacroExpander","","Represents a thing that maps token trees to Macro Results",null,null],[10,"expand","","",233,null],[8,"IdentMacroExpander","","",null,null],[10,"expand","","",234,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.",235,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_items","","Create zero or more items.",235,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_impl_items","","Create zero or more impl items.",235,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_pat","","Create a pattern.",235,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_stmts","","Create zero or more statements.",235,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_ty","","",235,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"clone","","",229,null],[11,"fmt","","",229,null],[11,"attrs","","",229,null],[11,"fold_attrs","","",229,null],[11,"expect_item","","",229,null],[11,"map_item_or","","",229,null],[11,"expect_trait_item","","",229,null],[11,"expect_impl_item","","",229,null],[11,"default","","",225,{"inputs":[],"output":{"name":"maceager"}}],[11,"expr","","",225,{"inputs":[{"name":"p"}],"output":{"name":"box"}}],[11,"pat","","",225,{"inputs":[{"name":"p"}],"output":{"name":"box"}}],[11,"items","","",225,{"inputs":[{"name":"smallvector"}],"output":{"name":"box"}}],[11,"impl_items","","",225,{"inputs":[{"name":"smallvector"}],"output":{"name":"box"}}],[11,"stmts","","",225,{"inputs":[{"name":"smallvector"}],"output":{"name":"box"}}],[11,"ty","","",225,{"inputs":[{"name":"p"}],"output":{"name":"box"}}],[11,"make_expr","","",225,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_items","","",225,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_impl_items","","",225,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_stmts","","",225,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_pat","","",225,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_ty","","",225,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"clone","","",236,null],[11,"any","","Create a default MacResult that can be anything.",236,{"inputs":[{"name":"span"}],"output":{"name":"box"}}],[11,"expr","","Create a default MacResult that can only be an expression.",236,{"inputs":[{"name":"span"}],"output":{"name":"box"}}],[11,"raw_expr","","A plain dummy expression.",236,{"inputs":[{"name":"span"}],"output":{"name":"p"}}],[11,"raw_pat","","A plain dummy pattern.",236,{"inputs":[{"name":"span"}],"output":{"name":"pat"}}],[11,"raw_ty","","",236,{"inputs":[{"name":"span"}],"output":{"name":"p"}}],[11,"make_expr","","",236,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_pat","","",236,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_items","","",236,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_impl_items","","",236,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"make_stmts","","",236,{"inputs":[{"name":"box"}],"output":{"name":"option"}}],[11,"new","","",226,{"inputs":[],"output":{"name":"blockinfo"}}],[11,"new","","",227,{"inputs":[{"name":"parsesess"},{"name":"crateconfig"},{"name":"expansionconfig"},{"name":"vec"}],"output":{"name":"extctxt"}}],[11,"expander","","Returns a `Folder` for deeply expanding all macros in an AST node.",227,null],[11,"new_parser_from_tts","","",227,null],[11,"codemap","","",227,null],[11,"parse_sess","","",227,null],[11,"cfg","","",227,null],[11,"call_site","","",227,null],[11,"backtrace","","",227,null],[11,"original_span","","Original span that caused the current exapnsion to happen.",227,null],[11,"expansion_cause","","Returns span for the macro which originally caused the current expansion to happen.",227,null],[11,"mod_push","","",227,null],[11,"mod_pop","","",227,null],[11,"mod_path","","",227,null],[11,"bt_push","","",227,null],[11,"bt_pop","","",227,null],[11,"insert_macro","","",227,null],[11,"struct_span_warn","","",227,null],[11,"struct_span_err","","",227,null],[11,"struct_span_fatal","","",227,null],[11,"span_fatal","","Emit `msg` attached to `sp`, and stop compilation immediately.",227,null],[11,"span_err","","Emit `msg` attached to `sp`, without immediately stopping\ncompilation.",227,null],[11,"span_warn","","",227,null],[11,"span_unimpl","","",227,null],[11,"span_bug","","",227,null],[11,"bug","","",227,null],[11,"trace_macros","","",227,null],[11,"set_trace_macros","","",227,null],[11,"ident_of","","",227,null],[11,"std_path","","",227,null],[11,"name_of","","",227,null],[11,"suggest_macro_name","","",227,null],[11,"push_frame","","",228,null],[11,"pop_frame","","",228,null],[11,"find","","",228,null],[11,"insert","","",228,null],[11,"info","","",228,null],[0,"build","syntex_syntax::ext","",null,null],[8,"AstBuilder","syntex_syntax::ext::build","",null,null],[10,"path","","",237,null],[10,"path_ident","","",237,null],[10,"path_global","","",237,null],[10,"path_all","","",237,null],[10,"qpath","","",237,null],[10,"qpath_all","","",237,null],[10,"ty_mt","","",237,null],[10,"ty","","",237,null],[10,"ty_path","","",237,null],[10,"ty_sum","","",237,null],[10,"ty_ident","","",237,null],[10,"ty_rptr","","",237,null],[10,"ty_ptr","","",237,null],[10,"ty_option","","",237,null],[10,"ty_infer","","",237,null],[10,"ty_vars","","",237,null],[10,"ty_vars_global","","",237,null],[10,"typaram","","",237,null],[10,"trait_ref","","",237,null],[10,"poly_trait_ref","","",237,null],[10,"typarambound","","",237,null],[10,"lifetime","","",237,null],[10,"lifetime_def","","",237,null],[10,"stmt_expr","","",237,null],[10,"stmt_let","","",237,null],[10,"stmt_let_typed","","",237,null],[10,"stmt_item","","",237,null],[10,"block","","",237,null],[10,"block_expr","","",237,null],[10,"block_all","","",237,null],[10,"expr","","",237,null],[10,"expr_path","","",237,null],[10,"expr_qpath","","",237,null],[10,"expr_ident","","",237,null],[10,"expr_self","","",237,null],[10,"expr_binary","","",237,null],[10,"expr_deref","","",237,null],[10,"expr_unary","","",237,null],[10,"expr_addr_of","","",237,null],[10,"expr_mut_addr_of","","",237,null],[10,"expr_field_access","","",237,null],[10,"expr_tup_field_access","","",237,null],[10,"expr_call","","",237,null],[10,"expr_call_ident","","",237,null],[10,"expr_call_global","","",237,null],[10,"expr_method_call","","",237,null],[10,"expr_block","","",237,null],[10,"expr_cast","","",237,null],[10,"field_imm","","",237,null],[10,"expr_struct","","",237,null],[10,"expr_struct_ident","","",237,null],[10,"expr_lit","","",237,null],[10,"expr_usize","","",237,null],[10,"expr_isize","","",237,null],[10,"expr_u8","","",237,null],[10,"expr_u32","","",237,null],[10,"expr_bool","","",237,null],[10,"expr_vec","","",237,null],[10,"expr_vec_ng","","",237,null],[10,"expr_vec_slice","","",237,null],[10,"expr_str","","",237,null],[10,"expr_some","","",237,null],[10,"expr_none","","",237,null],[10,"expr_break","","",237,null],[10,"expr_tuple","","",237,null],[10,"expr_fail","","",237,null],[10,"expr_unreachable","","",237,null],[10,"expr_ok","","",237,null],[10,"expr_err","","",237,null],[10,"expr_try","","",237,null],[10,"pat","","",237,null],[10,"pat_wild","","",237,null],[10,"pat_lit","","",237,null],[10,"pat_ident","","",237,null],[10,"pat_ident_binding_mode","","",237,null],[10,"pat_enum","","",237,null],[10,"pat_struct","","",237,null],[10,"pat_tuple","","",237,null],[10,"pat_some","","",237,null],[10,"pat_none","","",237,null],[10,"pat_ok","","",237,null],[10,"pat_err","","",237,null],[10,"arm","","",237,null],[10,"arm_unreachable","","",237,null],[10,"expr_match","","",237,null],[10,"expr_if","","",237,null],[10,"expr_loop","","",237,null],[10,"lambda_fn_decl","","",237,null],[10,"lambda","","",237,null],[10,"lambda0","","",237,null],[10,"lambda1","","",237,null],[10,"lambda_expr","","",237,null],[10,"lambda_expr_0","","",237,null],[10,"lambda_expr_1","","",237,null],[10,"lambda_stmts","","",237,null],[10,"lambda_stmts_0","","",237,null],[10,"lambda_stmts_1","","",237,null],[10,"item","","",237,null],[10,"arg","","",237,null],[10,"fn_decl","","",237,null],[10,"item_fn_poly","","",237,null],[10,"item_fn","","",237,null],[10,"variant","","",237,null],[10,"item_enum_poly","","",237,null],[10,"item_enum","","",237,null],[10,"item_struct_poly","","",237,null],[10,"item_struct","","",237,null],[10,"item_mod","","",237,null],[10,"item_static","","",237,null],[10,"item_const","","",237,null],[10,"item_ty_poly","","",237,null],[10,"item_ty","","",237,null],[10,"attribute","","",237,null],[10,"meta_word","","",237,null],[10,"meta_list","","",237,null],[10,"meta_name_value","","",237,null],[10,"item_use","","",237,null],[10,"item_use_simple","","",237,null],[10,"item_use_simple_","","",237,null],[10,"item_use_list","","",237,null],[10,"item_use_glob","","",237,null],[11,"path","syntex_syntax::ext::base","",227,null],[11,"path_ident","","",227,null],[11,"path_global","","",227,null],[11,"path_all","","",227,null],[11,"qpath","","Constructs a qualified path.",227,null],[11,"qpath_all","","Constructs a qualified path.",227,null],[11,"ty_mt","","",227,null],[11,"ty","","",227,null],[11,"ty_path","","",227,null],[11,"ty_sum","","",227,null],[11,"ty_ident","","",227,null],[11,"ty_rptr","","",227,null],[11,"ty_ptr","","",227,null],[11,"ty_option","","",227,null],[11,"ty_infer","","",227,null],[11,"typaram","","",227,null],[11,"ty_vars","","",227,null],[11,"ty_vars_global","","",227,null],[11,"trait_ref","","",227,null],[11,"poly_trait_ref","","",227,null],[11,"typarambound","","",227,null],[11,"lifetime","","",227,null],[11,"lifetime_def","","",227,null],[11,"stmt_expr","","",227,null],[11,"stmt_let","","",227,null],[11,"stmt_let_typed","","",227,null],[11,"block","","",227,null],[11,"stmt_item","","",227,null],[11,"block_expr","","",227,null],[11,"block_all","","",227,null],[11,"expr","","",227,null],[11,"expr_path","","",227,null],[11,"expr_qpath","","Constructs a QPath expression.",227,null],[11,"expr_ident","","",227,null],[11,"expr_self","","",227,null],[11,"expr_binary","","",227,null],[11,"expr_deref","","",227,null],[11,"expr_unary","","",227,null],[11,"expr_field_access","","",227,null],[11,"expr_tup_field_access","","",227,null],[11,"expr_addr_of","","",227,null],[11,"expr_mut_addr_of","","",227,null],[11,"expr_call","","",227,null],[11,"expr_call_ident","","",227,null],[11,"expr_call_global","","",227,null],[11,"expr_method_call","","",227,null],[11,"expr_block","","",227,null],[11,"field_imm","","",227,null],[11,"expr_struct","","",227,null],[11,"expr_struct_ident","","",227,null],[11,"expr_lit","","",227,null],[11,"expr_usize","","",227,null],[11,"expr_isize","","",227,null],[11,"expr_u32","","",227,null],[11,"expr_u8","","",227,null],[11,"expr_bool","","",227,null],[11,"expr_vec","","",227,null],[11,"expr_vec_ng","","",227,null],[11,"expr_vec_slice","","",227,null],[11,"expr_str","","",227,null],[11,"expr_cast","","",227,null],[11,"expr_some","","",227,null],[11,"expr_none","","",227,null],[11,"expr_break","","",227,null],[11,"expr_tuple","","",227,null],[11,"expr_fail","","",227,null],[11,"expr_unreachable","","",227,null],[11,"expr_ok","","",227,null],[11,"expr_err","","",227,null],[11,"expr_try","","",227,null],[11,"pat","","",227,null],[11,"pat_wild","","",227,null],[11,"pat_lit","","",227,null],[11,"pat_ident","","",227,null],[11,"pat_ident_binding_mode","","",227,null],[11,"pat_enum","","",227,null],[11,"pat_struct","","",227,null],[11,"pat_tuple","","",227,null],[11,"pat_some","","",227,null],[11,"pat_none","","",227,null],[11,"pat_ok","","",227,null],[11,"pat_err","","",227,null],[11,"arm","","",227,null],[11,"arm_unreachable","","",227,null],[11,"expr_match","","",227,null],[11,"expr_if","","",227,null],[11,"expr_loop","","",227,null],[11,"lambda_fn_decl","","",227,null],[11,"lambda","","",227,null],[11,"lambda0","","",227,null],[11,"lambda1","","",227,null],[11,"lambda_expr","","",227,null],[11,"lambda_expr_0","","",227,null],[11,"lambda_expr_1","","",227,null],[11,"lambda_stmts","","",227,null],[11,"lambda_stmts_0","","",227,null],[11,"lambda_stmts_1","","",227,null],[11,"arg","","",227,null],[11,"fn_decl","","",227,null],[11,"item","","",227,null],[11,"item_fn_poly","","",227,null],[11,"item_fn","","",227,null],[11,"variant","","",227,null],[11,"item_enum_poly","","",227,null],[11,"item_enum","","",227,null],[11,"item_struct","","",227,null],[11,"item_struct_poly","","",227,null],[11,"item_mod","","",227,null],[11,"item_static","","",227,null],[11,"item_const","","",227,null],[11,"item_ty_poly","","",227,null],[11,"item_ty","","",227,null],[11,"attribute","","",227,null],[11,"meta_word","","",227,null],[11,"meta_list","","",227,null],[11,"meta_name_value","","",227,null],[11,"item_use","","",227,null],[11,"item_use_simple","","",227,null],[11,"item_use_simple_","","",227,null],[11,"item_use_list","","",227,null],[11,"item_use_glob","","",227,null],[0,"deriving","syntex_syntax::ext","The compiler code necessary to implement the `#[derive]` extensions.",null,null],[5,"register_all","syntex_syntax::ext::deriving","",null,{"inputs":[{"name":"syntaxenv"}],"output":null}],[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,"IdentRenamer","syntex_syntax::ext::expand","A tree-folder that applies every rename in its (mutable) list\nto every identifier, including both bindings and varrefs\n(and lots of things that will turn out to be neither)",null,null],[3,"PatIdentRenamer","","A tree-folder that applies every rename in its list to\nthe idents that are in PatIdent patterns. This is more narrowly\nfocused than IdentRenamer, and is needed for FnDecl,\nwhere we want to rename the args but not the fn name or the generics etc.",null,null],[3,"MacroExpander","","A tree-folder that performs macro expansion",null,null],[12,"cx","","",238,null],[3,"ExpansionConfig","","",null,null],[12,"crate_name","","",239,null],[12,"features","","",239,null],[12,"recursion_limit","","",239,null],[12,"trace_mac","","",239,null],[5,"expand_expr","","",null,{"inputs":[{"name":"p"},{"name":"macroexpander"}],"output":{"name":"p"}}],[5,"expand_item","","",null,{"inputs":[{"name":"p"},{"name":"macroexpander"}],"output":{"name":"smallvector"}}],[5,"expand_item_mac","","",null,{"inputs":[{"name":"p"},{"name":"macroexpander"}],"output":{"name":"smallvector"}}],[5,"expand_block","","",null,{"inputs":[{"name":"p"},{"name":"macroexpander"}],"output":{"name":"p"}}],[5,"expand_block_elts","","",null,{"inputs":[{"name":"p"},{"name":"macroexpander"}],"output":{"name":"p"}}],[5,"expand_type","","",null,{"inputs":[{"name":"p"},{"name":"macroexpander"}],"output":{"name":"p"}}],[5,"expand_crate","","",null,null],[5,"check_for_macros","","Check that there are no macro invocations left in the AST:",null,{"inputs":[{"name":"parsesess"},{"name":"crate"}],"output":null}],[11,"fold_ident","","",240,null],[11,"fold_mac","","",240,null],[11,"fold_pat","","",241,null],[11,"fold_mac","","",241,null],[11,"new","","",238,{"inputs":[{"name":"extctxt"}],"output":{"name":"macroexpander"}}],[11,"fold_expr","","",238,null],[11,"fold_pat","","",238,null],[11,"fold_item","","",238,null],[11,"fold_item_kind","","",238,null],[11,"fold_stmt","","",238,null],[11,"fold_block","","",238,null],[11,"fold_arm","","",238,null],[11,"fold_trait_item","","",238,null],[11,"fold_impl_item","","",238,null],[11,"fold_ty","","",238,null],[11,"new_span","","",238,null],[11,"default","","",239,{"inputs":[{"name":"string"}],"output":{"name":"expansionconfig"}}],[11,"enable_quotes","","",239,null],[11,"enable_asm","","",239,null],[11,"enable_log_syntax","","",239,null],[11,"enable_concat_idents","","",239,null],[11,"enable_trace_macros","","",239,null],[11,"enable_allow_internal_unstable","","",239,null],[11,"enable_custom_derive","","",239,null],[11,"enable_pushpop_unsafe","","",239,null],[0,"mtwt","syntex_syntax::ext","Machinery for hygienic macros, as described in the MTWT[1] paper.",null,null],[3,"SCTable","syntex_syntax::ext::mtwt","The SCTable contains a table of SyntaxContext_'s. It\nrepresents a flattened tree structure, to avoid having\nmanaged pointers everywhere (that caused an ICE).\nthe mark_memo and rename_memo fields are side-tables\nthat ensure that adding the same mark to the same context\ngives you back the same context as before. This shouldn't\nchange the semantics--everything here is immutable--but\nit should cut down on memory use *a lot*; applying a mark\nto a tree containing 50 identifiers would otherwise generate\n50 new contexts",null,null],[4,"SyntaxContext_","","",null,null],[13,"EmptyCtxt","","",242,null],[13,"Mark","","",242,null],[13,"Rename","","flattening the name and syntaxcontext into the rename...\nHIDDEN INVARIANTS:\n1) the first name in a Rename node\ncan only be a programmer-supplied name.\n2) Every Rename node with a given Name in the\n"to" slot must have the same name and context\nin the "from" slot. In essence, they're all\npointers to a single "rename" event node.",242,null],[13,"IllegalCtxt","","actually, IllegalCtxt may not be necessary.",242,null],[5,"apply_mark","","Extend a syntax context with a given mark",null,{"inputs":[{"name":"mrk"},{"name":"syntaxcontext"}],"output":{"name":"syntaxcontext"}}],[5,"apply_rename","","Extend a syntax context with a given rename",null,{"inputs":[{"name":"ident"},{"name":"name"},{"name":"syntaxcontext"}],"output":{"name":"syntaxcontext"}}],[5,"apply_renames","","Apply a list of renamings to a context",null,{"inputs":[{"name":"renamelist"},{"name":"syntaxcontext"}],"output":{"name":"syntaxcontext"}}],[5,"with_sctable","","Fetch the SCTable from TLS, create one if it doesn't yet exist.",null,{"inputs":[{"name":"f"}],"output":{"name":"t"}}],[5,"display_sctable","","Print out an SCTable for debugging",null,{"inputs":[{"name":"sctable"}],"output":null}],[5,"clear_tables","","Clear the tables from TLD to reclaim memory.",null,{"inputs":[],"output":null}],[5,"reset_tables","","Reset the tables to their initial state",null,{"inputs":[],"output":null}],[5,"resolve","","Resolve a syntax object to a name, per MTWT.",null,{"inputs":[{"name":"ident"}],"output":{"name":"name"}}],[5,"marksof","","Compute the marks associated with a syntax context.",null,{"inputs":[{"name":"syntaxcontext"},{"name":"name"}],"output":{"name":"vec"}}],[5,"outer_mark","","Return the outer mark for a context with a mark at the outside.\nFAILS when outside is not a mark.",null,{"inputs":[{"name":"syntaxcontext"}],"output":{"name":"mrk"}}],[6,"RenameList","","A list of ident->name renamings",null,null],[11,"clone","","",242,null],[11,"fmt","","",242,null],[11,"hash","","",242,null],[11,"decode","","",242,{"inputs":[{"name":"__d"}],"output":{"name":"result"}}],[11,"encode","","",242,null],[11,"eq","","",242,null],[11,"ne","","",242,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":"pathparsingmode"}],"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],[8,"ToTokens","syntex_syntax::ext::quote::rt","",null,null],[10,"to_tokens","","",243,null],[8,"ExtParseUtils","","",null,null],[10,"parse_item","","",244,null],[10,"parse_expr","","",244,null],[10,"parse_stmt","","",244,null],[10,"parse_tts","","",244,null],[11,"to_tokens","syntex_syntax::ast","",98,null],[11,"to_tokens","syntex_syntax::codemap","",148,null],[11,"to_tokens","syntex_syntax::ast","",32,null],[11,"to_tokens","","",35,null],[11,"to_tokens","","",62,null],[11,"to_tokens","","",46,null],[11,"to_tokens","","",40,null],[11,"to_tokens","","",41,null],[11,"to_tokens","syntex_syntax::ptr","",209,null],[11,"to_tokens","","",209,null],[11,"to_tokens","","",209,null],[11,"to_tokens","","",209,null],[11,"to_tokens","","",209,null],[11,"to_tokens","","",209,null],[11,"to_tokens","syntex_syntax::ast","",50,null],[11,"to_tokens","","",66,null],[11,"to_tokens","syntex_syntax::ptr","",209,null],[11,"to_tokens","","",209,null],[11,"to_tokens","syntex_syntax::ext::quote::rt","",141,null],[11,"to_tokens","","",245,null],[11,"parse_item","syntex_syntax::ext::base","",227,null],[11,"parse_stmt","","",227,null],[11,"parse_expr","","",227,null],[11,"parse_tts","","",227,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","","",246,null],[12,"cur_tok","","",246,null],[12,"cur_span","","",246,null],[12,"desugar_doc_comments","","Transform doc comments. Only useful in macro invocations",246,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","","",246,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","","",247,null],[13,"MatchedNonterminal","","",247,null],[4,"ParseResult","","",null,null],[13,"Success","","",248,null],[13,"Failure","","Arm failed to match",248,null],[13,"Error","","Fatal error (malformed macro?). Abort compilation.",248,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","","",249,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,"fileline_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","",209,null],[11,"name","","",209,null],[11,"value_str","","",209,null],[11,"meta_item_list","","",209,null],[11,"span","","",209,null],[11,"with_attrs","","",209,null],[11,"with_attrs","","",209,null],[11,"with_attrs","","",209,null],[11,"with_attrs","","",209,null],[11,"with_attrs","","",209,null],[11,"is_eof","syntex_syntax::ext::tt::transcribe","",246,null],[11,"next_token","","",246,null],[11,"fatal","","",246,null],[11,"err","","",246,null],[11,"peek","","",246,null]],"paths":[[3,"Interner"],[3,"RcStr"],[3,"StrInterner"],[3,"NodeCounter"],[4,"AssocOp"],[4,"Fixity"],[3,"SmallVector"],[3,"IntoIter"],[8,"MoveMap"],[3,"ErrorInfo"],[3,"Registry"],[3,"ErrorMetadata"],[3,"ErrorLocation"],[3,"Handler"],[4,"RenderSpan"],[4,"Level"],[4,"ColorConfig"],[8,"Emitter"],[3,"BasicEmitter"],[3,"EmitterWriter"],[3,"JsonEmitter"],[3,"CodeSuggestion"],[3,"FatalError"],[3,"ExplicitBug"],[3,"DiagnosticBuilder"],[4,"Os"],[4,"Abi"],[4,"Architecture"],[4,"AbiArchitecture"],[3,"AbiData"],[3,"Name"],[3,"SyntaxContext"],[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,"Local"],[3,"Arm"],[3,"Field"],[3,"Expr"],[3,"QSelf"],[3,"Delimited"],[3,"SequenceRepetition"],[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,"Pat_"],[4,"Mutability"],[4,"BinOpKind"],[4,"UnOp"],[4,"StmtKind"],[4,"MacStmtStyle"],[4,"DeclKind"],[4,"BlockCheckMode"],[4,"UnsafeSource"],[4,"ExprKind"],[4,"CaptureBy"],[4,"KleeneOp"],[4,"TokenTree"],[4,"StrStyle"],[4,"LitIntType"],[4,"LitKind"],[4,"TraitItemKind"],[4,"ImplItemKind"],[4,"IntTy"],[4,"UintTy"],[4,"FloatTy"],[4,"TyKind"],[4,"AsmDialect"],[4,"Unsafety"],[4,"Constness"],[4,"ImplPolarity"],[4,"FunctionRetTy"],[4,"SelfKind"],[4,"PathListItemKind"],[4,"ViewPath_"],[4,"AttrStyle"],[4,"Visibility"],[4,"StructFieldKind"],[4,"VariantData"],[4,"ItemKind"],[4,"ForeignItemKind"],[8,"NodeIdAssigner"],[6,"Stmt"],[6,"Decl"],[3,"IdRange"],[3,"IdVisitor"],[3,"IdRangeComputingVisitor"],[8,"IdVisitingOperation"],[3,"Stability"],[3,"RustcDeprecation"],[3,"Deprecation"],[4,"InlineAttr"],[4,"StabilityLevel"],[4,"ReprAttr"],[4,"IntType"],[8,"AttrMetaMethods"],[8,"AttributeMethods"],[8,"ThinAttributesExt"],[8,"AttributesExt"],[8,"WithAttrs"],[6,"Attribute"],[6,"MetaItem"],[6,"ThinAttributes"],[3,"BytePos"],[3,"CharPos"],[3,"Span"],[3,"MultiSpan"],[3,"Spanned"],[3,"Loc"],[3,"LocWithOpt"],[3,"FileMapAndLine"],[3,"FileMapAndBytePos"],[3,"NameAndSpan"],[3,"ExpnInfo"],[3,"LineInfo"],[3,"FileLines"],[3,"MultiByteChar"],[3,"FileMap"],[3,"CodeMap"],[4,"ExpnFormat"],[4,"SpanLinesError"],[4,"SpanSnippetError"],[8,"Pos"],[8,"FileLoader"],[3,"ExpnId"],[3,"RealFileLoader"],[3,"DistinctSources"],[3,"MalformedCodemapPositions"],[3,"CfgDiagReal"],[8,"CfgDiag"],[4,"EntryPointType"],[3,"Features"],[4,"GatedCfgAttr"],[4,"AttributeType"],[4,"AttributeGate"],[4,"GateIssue"],[4,"UnstableFeatures"],[3,"GatedCfg"],[8,"Folder"],[3,"ParseSess"],[3,"Parser"],[3,"ModulePath"],[3,"ModulePathSuccess"],[3,"ModulePathError"],[4,"PathParsingMode"],[4,"BoundParsingMode"],[4,"ParsePub"],[4,"TokenType"],[4,"LhsExpr"],[3,"Restrictions"],[3,"TokenAndSpan"],[3,"StringReader"],[3,"Comment"],[3,"Literal"],[4,"CommentStyle"],[8,"Reader"],[4,"BinOpToken"],[4,"DelimToken"],[4,"IdentStyle"],[4,"SpecialMacroVar"],[4,"Lit"],[4,"Token"],[4,"Nonterminal"],[4,"Keyword"],[3,"InternedString"],[3,"SeqSep"],[4,"ObsoleteSyntax"],[8,"ParserObsoleteMethods"],[3,"P"],[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"],[3,"DummyResult"],[8,"AstBuilder"],[3,"MacroExpander"],[3,"ExpansionConfig"],[3,"IdentRenamer"],[3,"PatIdentRenamer"],[4,"SyntaxContext_"],[8,"ToTokens"],[8,"ExtParseUtils"],[6,"Lit"],[3,"TtReader"],[4,"NamedMatch"],[4,"ParseResult"],[3,"MatcherPos"]]}; initSearch(searchIndex);