var searchIndex = {}; searchIndex["gluon_base"] = {"doc":"The base crate contains pervasive types used in the compiler such as type representations, the\nAST and some basic containers.","items":[[0,"ast","gluon_base","Module containing the types which make up `gluon`'s AST (Abstract Syntax Tree)",null,null],[3,"TcIdentEnvWrapper","gluon_base::ast","Newtype wrapper which allows `DisplayEnv<Ident = I>` to be used where\n`DisplayEnv<Ident = TcIdent<Ident = I>` is expected",null,null],[12,"0","","",0,null],[3,"EmptyEnv","","",null,null],[3,"TcIdent","","",null,null],[12,"typ","","",1,null],[12,"name","","",1,null],[3,"TcIdentEnv","","",null,null],[12,"typ","","",2,null],[12,"env","","",2,null],[3,"Location","","Representation of a location in a source file",null,null],[12,"row","","",3,null],[12,"column","","",3,null],[12,"absolute","","",3,null],[3,"Span","","Struct which represents a span in a source file",null,null],[12,"start","","",4,null],[12,"end","","",4,null],[3,"Spanned","","",null,null],[12,"span","","",5,null],[12,"value","","",5,null],[3,"Located","","",null,null],[12,"location","","",6,null],[12,"value","","",6,null],[3,"Alternative","","",null,null],[12,"pattern","","",7,null],[12,"expression","","",7,null],[3,"Array","","",null,null],[12,"id","","",8,null],[12,"expressions","","",8,null],[3,"Lambda","","",null,null],[12,"id","","",9,null],[12,"arguments","","",9,null],[12,"body","","",9,null],[3,"TypeBinding","","",null,null],[12,"comment","","",10,null],[12,"name","","",10,null],[12,"alias","","",10,null],[3,"Binding","","",null,null],[12,"comment","","",11,null],[12,"name","","",11,null],[12,"typ","","",11,null],[12,"arguments","","",11,null],[12,"expression","","",11,null],[4,"LiteralEnum","","",null,null],[13,"Byte","","",12,null],[13,"Integer","","",12,null],[13,"Float","","",12,null],[13,"String","","",12,null],[13,"Char","","",12,null],[4,"Pattern","","",null,null],[13,"Constructor","","",13,null],[13,"Record","","",13,null],[12,"id","gluon_base::ast::Pattern","",13,null],[12,"types","","",13,null],[12,"fields","","",13,null],[13,"Identifier","gluon_base::ast","",13,null],[4,"Expr","","",null,null],[13,"Identifier","","",14,null],[13,"Literal","","",14,null],[13,"Call","","",14,null],[13,"IfElse","","",14,null],[13,"Match","","",14,null],[13,"BinOp","","",14,null],[13,"Let","","",14,null],[13,"FieldAccess","","",14,null],[13,"Array","","",14,null],[13,"Record","","",14,null],[12,"typ","gluon_base::ast::Expr","",14,null],[12,"types","","",14,null],[12,"exprs","","",14,null],[13,"Lambda","gluon_base::ast","",14,null],[13,"Tuple","","",14,null],[13,"Type","","",14,null],[13,"Block","","",14,null],[5,"located","","",null,{"inputs":[{"name":"location"},{"name":"t"}],"output":{"name":"located"}}],[5,"no_loc","","",null,{"inputs":[{"name":"t"}],"output":{"name":"located"}}],[5,"walk_mut_expr","","",null,{"inputs":[{"name":"v"},{"name":"lexpr"}],"output":null}],[5,"walk_mut_pattern","","Walks a pattern, calling `visit_*` on all relevant elements",null,{"inputs":[{"name":"v"},{"name":"pattern"}],"output":null}],[6,"ASTType","","",null,null],[6,"LPattern","","Pattern which contains a location",null,null],[6,"LExpr","","Expression which contains a location",null,null],[8,"AstId","","Trait representing a type that can by used as in identifier in the AST\nUsed to allow the AST to both have a representation which has typed expressions etc as well\nas one which only has identifiers (useful for testing)",null,null],[16,"Untyped","","The type used instead of `Self` when the identifier does not need a type",15,null],[11,"from_str","","",15,{"inputs":[{"name":"e"},{"name":"str"}],"output":{"name":"self"}}],[10,"to_id","","",15,null],[10,"set_type","","",15,null],[8,"DisplayEnv","","",null,null],[16,"Ident","","",16,null],[10,"string","","",16,null],[8,"IdentEnv","","",null,null],[10,"from_str","","",17,null],[8,"MutVisitor","","Visitor trait which walks over expressions calling `visit_*` on all encountered elements. By\ndefault the `visit_*` functions just walk the tree. If they are overriden the user will need to\ncall `walk_mut_*` to continue traversing the tree.",null,null],[16,"T","","",18,null],[11,"visit_expr","","",18,null],[11,"visit_pattern","","",18,null],[11,"visit_identifier","","",18,null],[8,"Typed","","Trait which abstracts over things that have a type.\nIt is not guaranteed that the correct type is returned until after typechecking",null,null],[16,"Id","","",19,null],[11,"type_of","","",19,null],[10,"env_type_of","","",19,null],[11,"string","","",0,null],[11,"new","","",20,{"inputs":[],"output":{"name":"emptyenv"}}],[11,"string","","",20,null],[11,"from_str","","",20,null],[11,"fmt","","",1,null],[11,"eq","","",1,null],[11,"ne","","",1,null],[11,"clone","","",1,null],[11,"new","","",1,{"inputs":[{"name":"id"}],"output":{"name":"tcident"}}],[11,"id","","",1,null],[11,"as_ref","","",1,null],[11,"to_id","","",1,null],[11,"set_type","","",1,null],[11,"string","","",2,null],[11,"from_str","","",2,null],[11,"partial_cmp","","",3,null],[11,"lt","","",3,null],[11,"le","","",3,null],[11,"gt","","",3,null],[11,"ge","","",3,null],[11,"cmp","","",3,null],[11,"hash","","",3,null],[11,"fmt","","",3,null],[11,"eq","","",3,null],[11,"ne","","",3,null],[11,"clone","","",3,null],[11,"eof","","",3,{"inputs":[],"output":{"name":"location"}}],[11,"line_offset","","",3,null],[11,"fmt","","",3,null],[11,"fmt","","",4,null],[11,"eq","","",4,null],[11,"ne","","",4,null],[11,"clone","","",4,null],[11,"containment","","",4,null],[11,"containment_exclusive","","",4,null],[11,"fmt","","",5,null],[11,"eq","","",5,null],[11,"ne","","",5,null],[11,"clone","","",5,null],[11,"fmt","","",5,null],[11,"fmt","","",6,null],[11,"clone","","",6,null],[11,"eq","","",6,null],[11,"deref","","",6,null],[11,"fmt","","",6,null],[11,"fmt","","",12,null],[11,"eq","","",12,null],[11,"ne","","",12,null],[11,"clone","","",12,null],[11,"fmt","","",13,null],[11,"eq","","",13,null],[11,"ne","","",13,null],[11,"clone","","",13,null],[11,"fmt","","",7,null],[11,"eq","","",7,null],[11,"ne","","",7,null],[11,"clone","","",7,null],[11,"fmt","","",8,null],[11,"eq","","",8,null],[11,"ne","","",8,null],[11,"clone","","",8,null],[11,"fmt","","",9,null],[11,"eq","","",9,null],[11,"ne","","",9,null],[11,"clone","","",9,null],[11,"fmt","","",14,null],[11,"eq","","",14,null],[11,"ne","","",14,null],[11,"clone","","",14,null],[11,"fmt","","",10,null],[11,"eq","","",10,null],[11,"ne","","",10,null],[11,"clone","","",10,null],[11,"fmt","","",11,null],[11,"eq","","",11,null],[11,"ne","","",11,null],[11,"clone","","",11,null],[11,"span","","Returns the an approximation of the span of the expression",21,null],[11,"span","","Returns the an approximation of the span of the expression",22,null],[11,"env_type_of","","",1,null],[11,"env_type_of","","",14,null],[11,"env_type_of","","",6,null],[11,"env_type_of","","",13,null],[11,"env_type_of","","",11,null],[0,"fixed","gluon_base","Collection types which allows insertion of new values while shared references to its contents\nare alive. This is done by storing each value in a stable memory location and preventing an\nearlier inserted value to be overwritten.",null,null],[3,"FixedMap","gluon_base::fixed","",null,null],[3,"FixedVec","","",null,null],[11,"default","","",23,{"inputs":[],"output":{"name":"fixedmap"}}],[11,"fmt","","",23,null],[11,"new","","",23,{"inputs":[],"output":{"name":"fixedmap"}}],[11,"clear","","",23,null],[11,"try_insert","","",23,null],[11,"len","","",23,null],[11,"is_empty","","",23,null],[11,"get","","",23,null],[11,"fmt","","",24,null],[11,"new","","",24,{"inputs":[],"output":{"name":"fixedvec"}}],[11,"clear","","",24,null],[11,"push","","",24,null],[11,"extend","","",24,null],[11,"borrow","","",24,null],[11,"find","","",24,null],[11,"len","","",24,null],[11,"is_empty","","",24,null],[11,"index","","",24,null],[11,"index_mut","","",24,null],[11,"from_iter","","",24,{"inputs":[{"name":"t"}],"output":{"name":"fixedvec"}}],[0,"symbol","gluon_base","Module which contains types working with symbols",null,null],[3,"Symbol","gluon_base::symbol","",null,null],[3,"NameBuf","","",null,null],[3,"Name","","",null,null],[3,"Components","","",null,null],[3,"Symbols","","",null,null],[3,"SymbolModule","","",null,null],[11,"clone","","",25,null],[11,"as_ref","","",25,null],[11,"fmt","","",25,null],[11,"fmt","","",25,null],[11,"eq","","",25,null],[11,"partial_cmp","","",25,null],[11,"cmp","","",25,null],[11,"hash","","",25,null],[11,"new","","",25,{"inputs":[{"name":"str"}],"output":{"name":"symbol"}}],[11,"name_eq","","Checks whether the names of two symbols are equal",25,null],[11,"hash","","",26,null],[11,"eq","","",26,null],[11,"ne","","",26,null],[11,"fmt","","",26,null],[11,"clone","","",26,null],[11,"hash","","",27,null],[11,"eq","","",27,null],[11,"ne","","",27,null],[11,"fmt","","",27,null],[11,"next","","",28,null],[11,"new","","",27,{"inputs":[{"name":"n"}],"output":{"name":"name"}}],[11,"as_str","","",27,null],[11,"components","","",27,null],[11,"module","","",27,null],[11,"name","","",27,null],[11,"new","","",26,{"inputs":[{"name":"t"}],"output":{"name":"namebuf"}}],[11,"fmt","","",27,null],[11,"fmt","","",26,null],[11,"as_ref","","",27,null],[11,"as_ref","","",26,null],[11,"as_ref","","",26,null],[11,"borrow","","",26,null],[11,"deref","","",26,null],[11,"from","","",26,{"inputs":[{"name":"str"}],"output":{"name":"namebuf"}}],[11,"from","","",26,{"inputs":[{"name":"string"}],"output":{"name":"namebuf"}}],[11,"from","","",26,{"inputs":[{"name":"name"}],"output":{"name":"namebuf"}}],[11,"default","","",29,{"inputs":[],"output":{"name":"symbols"}}],[11,"fmt","","",29,null],[11,"new","","",29,{"inputs":[],"output":{"name":"symbols"}}],[11,"symbol","","",29,null],[11,"fmt","","",30,null],[11,"new","","",30,{"inputs":[{"name":"string"},{"name":"symbols"}],"output":{"name":"symbolmodule"}}],[11,"symbol","","",30,null],[11,"scoped_symbol","","",30,null],[11,"string","","",29,null],[11,"string","","",30,null],[11,"from_str","","",30,null],[11,"to_id","","",25,null],[11,"set_type","","",25,null],[0,"error","gluon_base","Module containing a few common error wrappers which allows more information to be saved for\nlater display to the user",null,null],[3,"Errors","gluon_base::error","An error type which can represent multiple errors.",null,null],[12,"errors","","",31,null],[3,"InFile","","Error type which contains information of which file and where in the file the error occured",null,null],[11,"eq","","",31,null],[11,"ne","","",31,null],[11,"fmt","","",31,null],[11,"new","","Creates a new, empty `Errors` instance.",31,{"inputs":[],"output":{"name":"errors"}}],[11,"has_errors","","Returns true if `self` contains any errors",31,null],[11,"error","","Adds an error to `self`",31,null],[11,"fmt","","",31,null],[11,"description","","",31,null],[11,"fmt","","",32,null],[11,"new","","Creates a new `InFile` error which states that the error occured in `file` using the file\ncontents in `contents` to provide a context to the span.",32,{"inputs":[{"name":"string"},{"name":"str"},{"name":"errors"}],"output":{"name":"infile"}}],[11,"errors","","",32,null],[11,"fmt","","",32,null],[11,"description","","",32,null],[0,"types","gluon_base","Module containing types representing `gluon`'s type system",null,null],[3,"ArcType","gluon_base::types","A shared type which is atomically reference counted",null,null],[3,"RcType","","",null,null],[3,"RcKind","","Reference counted kind type.",null,null],[3,"TypeVariable","","",null,null],[12,"kind","","",33,null],[12,"id","","",33,null],[3,"Generic","","",null,null],[12,"kind","","",34,null],[12,"id","","",34,null],[3,"Alias","","",null,null],[3,"AliasData","","",null,null],[12,"name","","Name of the Alias",35,null],[12,"args","","Arguments to the alias",35,null],[12,"typ","","The type which is being aliased or `None` if the type is abstract",35,null],[3,"Field","","",null,null],[12,"name","","",36,null],[12,"typ","","",36,null],[3,"ArgIterator","","",null,null],[12,"typ","","The current type being iterated over. After `None` has been returned this is the return\ntype.",37,null],[3,"DisplayType","","",null,null],[4,"Type","","The representation of gluon's types.",null,null],[13,"App","","An application which applies the first argument on the second.\n`Option Int` would be represented as `App(Option, Int)`",38,null],[13,"Data","","An application with multiple arguments",38,null],[13,"Variants","","A variant type `| A Int Float | B`.\nThe second element of the tuple is the function type which the constructor has which in the\nabove example means that A's type is `Int -> Float -> A` and B's is `B`",38,null],[13,"Variable","","Representation for type variables",38,null],[13,"Generic","","Variant for "generic" variables. These occur in signatures as lowercase identifers `a`, `b`\netc and are what unbound type variables are eventually made into.",38,null],[13,"Function","","A function type `<type> -> <type>`",38,null],[13,"Builtin","","A builtin type",38,null],[13,"Array","","An array type `Array T`",38,null],[13,"Record","","A record type",38,null],[12,"types","gluon_base::types::Type","The associated types of this record type",38,null],[12,"fields","","The fields of this record type",38,null],[13,"Id","gluon_base::types","An identifier type. Anything which is not a builting type.",38,null],[13,"Alias","","",38,null],[4,"BuiltinType","","All the builtin types of gluon",null,null],[13,"String","","",39,null],[13,"Byte","","",39,null],[13,"Char","","",39,null],[13,"Int","","",39,null],[13,"Float","","",39,null],[13,"Unit","","",39,null],[13,"Function","","",39,null],[4,"Kind","","Kind representation",null,null],[13,"Variable","","Representation for a kind which is yet to be infered",40,null],[13,"Star","","The simplest possible kind. All values in a program have this kind.",40,null],[13,"Function","","Constructor which takes two kinds, taking the first as argument and returning the second",40,null],[5,"instantiate","","",null,{"inputs":[{"name":"tctype"},{"name":"f"}],"output":{"name":"tctype"}}],[5,"arg_iter","","Constructs an iterator over a functions arguments",null,{"inputs":[{"name":"t"}],"output":{"name":"argiterator"}}],[5,"display_type","","",null,{"inputs":[{"name":"e"},{"name":"type"}],"output":{"name":"displaytype"}}],[5,"walk_type","","",null,{"inputs":[{"name":"t"},{"name":"f"}],"output":null}],[5,"fold_type","","",null,{"inputs":[{"name":"t"},{"name":"f"},{"name":"a"}],"output":{"name":"a"}}],[5,"walk_move_type","","Walks through a type calling `f` on each inner type. If `f` return `Some` the type is replaced.",null,{"inputs":[{"name":"t"},{"name":"f"}],"output":{"name":"t"}}],[5,"merge","","Merges two values using `f` if either or both them is `Some(..)`.\nIf both are `None`, `None` is returned.",null,{"inputs":[{"name":"a"},{"name":"option"},{"name":"b"},{"name":"option"},{"name":"f"}],"output":{"name":"option"}}],[6,"TcType","","",null,null],[6,"TcIdent","","",null,null],[8,"KindEnv","","Trait for values which contains kinded values which can be refered by name",null,null],[10,"find_kind","","Returns the kind of the type `type_name`",41,null],[8,"TypeEnv","","Trait for values which contains typed values which can be refered by name",null,null],[10,"find_type","","Returns the type of the value bound at `id`",42,null],[10,"find_type_info","","Returns information about the type `id`",42,null],[10,"find_record","","Returns a record which contains all `fields`. The first element is the record type and the\nsecond is the alias type.",42,null],[8,"PrimitiveEnv","","Trait which is a `TypeEnv` which also provides access to the type representation of some\nprimitive types",null,null],[10,"get_bool","","",43,null],[11,"hash","","",38,null],[11,"eq","","",38,null],[11,"ne","","",38,null],[11,"fmt","","",38,null],[11,"clone","","",38,null],[11,"is_uninitialized","","",38,null],[11,"kind","","",38,null],[11,"hash","","",44,null],[11,"eq","","",44,null],[11,"ne","","",44,null],[11,"clone","","",44,null],[11,"fmt","","",44,null],[11,"fmt","","",44,null],[11,"deref","","",44,null],[11,"new","","",44,{"inputs":[{"name":"type"}],"output":{"name":"arctype"}}],[11,"into_inner","","",44,null],[11,"from","","",44,{"inputs":[{"name":"type"}],"output":{"name":"arctype"}}],[11,"hash","","",45,null],[11,"eq","","",45,null],[11,"ne","","",45,null],[11,"clone","","",45,null],[11,"fmt","","",45,null],[11,"fmt","","",45,null],[11,"deref","","",45,null],[11,"new","","",45,{"inputs":[{"name":"type"}],"output":{"name":"rctype"}}],[11,"into_inner","","",45,null],[11,"from","","",45,{"inputs":[{"name":"type"}],"output":{"name":"rctype"}}],[11,"hash","","",39,null],[11,"fmt","","",39,null],[11,"eq","","",39,null],[11,"clone","","",39,null],[11,"from_str","","",39,{"inputs":[{"name":"str"}],"output":{"name":"result"}}],[11,"to_str","","",39,null],[11,"hash","","",40,null],[11,"eq","","",40,null],[11,"ne","","",40,null],[11,"fmt","","",40,null],[11,"clone","","",40,null],[11,"variable","","",40,{"inputs":[{"name":"u32"}],"output":{"name":"rckind"}}],[11,"star","","",40,{"inputs":[],"output":{"name":"rckind"}}],[11,"function","","",40,{"inputs":[{"name":"rckind"},{"name":"rckind"}],"output":{"name":"rckind"}}],[11,"hash","","",46,null],[11,"eq","","",46,null],[11,"ne","","",46,null],[11,"clone","","",46,null],[11,"deref","","",46,null],[11,"fmt","","",46,null],[11,"fmt","","",46,null],[11,"new","","",46,{"inputs":[{"name":"kind"}],"output":{"name":"rckind"}}],[11,"hash","","",33,null],[11,"eq","","",33,null],[11,"ne","","",33,null],[11,"fmt","","",33,null],[11,"clone","","",33,null],[11,"hash","","",34,null],[11,"eq","","",34,null],[11,"ne","","",34,null],[11,"fmt","","",34,null],[11,"clone","","",34,null],[11,"hash","","",47,null],[11,"eq","","",47,null],[11,"ne","","",47,null],[11,"fmt","","",47,null],[11,"clone","","",47,null],[11,"deref","","",47,null],[11,"from","","",47,{"inputs":[{"name":"aliasdata"}],"output":{"name":"alias"}}],[11,"as_ref","","",47,null],[11,"new","","",47,{"inputs":[{"name":"id"},{"name":"vec"},{"name":"t"}],"output":{"name":"alias"}}],[11,"into_type","","",47,null],[11,"make_mut","","",47,{"inputs":[{"name":"alias"}],"output":{"name":"aliasdata"}}],[11,"hash","","",35,null],[11,"eq","","",35,null],[11,"ne","","",35,null],[11,"fmt","","",35,null],[11,"clone","","",35,null],[11,"fmt","","",36,null],[11,"eq","","",36,null],[11,"ne","","",36,null],[11,"hash","","",36,null],[11,"clone","","",36,null],[11,"app","","",38,{"inputs":[{"name":"t"},{"name":"t"}],"output":{"name":"t"}}],[11,"array","","",38,{"inputs":[{"name":"t"}],"output":{"name":"t"}}],[11,"data","","",38,{"inputs":[{"name":"t"},{"name":"vec"}],"output":{"name":"t"}}],[11,"variants","","",38,{"inputs":[{"name":"vec"}],"output":{"name":"t"}}],[11,"record","","",38,{"inputs":[{"name":"vec"},{"name":"vec"}],"output":{"name":"t"}}],[11,"function","","",38,{"inputs":[{"name":"vec"},{"name":"t"}],"output":{"name":"t"}}],[11,"generic","","",38,{"inputs":[{"name":"generic"}],"output":{"name":"t"}}],[11,"builtin","","",38,{"inputs":[{"name":"builtintype"}],"output":{"name":"t"}}],[11,"variable","","",38,{"inputs":[{"name":"typevariable"}],"output":{"name":"t"}}],[11,"alias","","",38,{"inputs":[{"name":"id"},{"name":"vec"},{"name":"t"}],"output":{"name":"t"}}],[11,"id","","",38,{"inputs":[{"name":"id"}],"output":{"name":"t"}}],[11,"string","","",38,{"inputs":[],"output":{"name":"t"}}],[11,"char","","",38,{"inputs":[],"output":{"name":"t"}}],[11,"byte","","",38,{"inputs":[],"output":{"name":"t"}}],[11,"int","","",38,{"inputs":[],"output":{"name":"t"}}],[11,"float","","",38,{"inputs":[],"output":{"name":"t"}}],[11,"unit","","",38,{"inputs":[],"output":{"name":"t"}}],[11,"as_alias","","",38,null],[11,"next","","",37,null],[11,"return_type","","Returns the type which this type would return if it was fully applied.",48,null],[11,"inner_app","","Returns the inner most application of a type application",48,null],[11,"level","","Returns the lowest level which this type contains. The level informs from where type\nvariables where created.",48,null],[11,"new","","",33,{"inputs":[{"name":"u32"}],"output":{"name":"typevariable"}}],[11,"with_kind","","",33,{"inputs":[{"name":"kind"},{"name":"u32"}],"output":{"name":"typevariable"}}],[11,"fmt","","",40,null],[11,"fmt","","",33,null],[11,"fmt","","",34,null],[11,"fmt","","",39,null],[11,"fmt","","",49,null],[11,"fmt","","",38,null],[0,"scoped_map","gluon_base","A map data type which allows the same key to exist at multiple scope levels",null,null],[3,"ScopedMap","gluon_base::scoped_map","A map struct which allows for the introduction of different scopes\nIntroducing a new scope will make it possible to introduce additional\nvariables with names already defined, shadowing the old name\nAfter exiting a scope the shadowed variable will again be re introduced",null,null],[3,"Iter","","",null,null],[11,"fmt","","",50,null],[11,"new","","",50,{"inputs":[],"output":{"name":"scopedmap"}}],[11,"enter_scope","","Introduces a new scope",50,null],[11,"exit_scope","","Exits the current scope, removing anything inserted since the\nmatching enter_scope call",50,null],[11,"remove","","Removes a previusly inserted value from the map.",50,null],[11,"in_current_scope","","Returns true if the key has a value declared in the last declared scope",50,null],[11,"iter_mut","","Returns an iterator of the (key, values) pairs inserted in the map",50,null],[11,"get","","Returns a reference to the last inserted value corresponding to the key",50,null],[11,"get_all","","Returns a reference to the all inserted value corresponding to the key",50,null],[11,"len","","Returns the number of elements in the container.\nShadowed elements are not counted",50,null],[11,"is_empty","","Returns true if this map is empty",50,null],[11,"clear","","Removes all elements",50,null],[11,"swap","","Swaps the value stored at key, or inserts it if it is not present",50,null],[11,"pop","","",50,null],[11,"get_mut","","",50,null],[11,"insert","","",50,null],[11,"iter","","",50,null],[11,"next","","",51,null],[0,"metadata","gluon_base","",null,null],[3,"Metadata","gluon_base::metadata","",null,null],[12,"comment","","",52,null],[12,"module","","",52,null],[8,"MetadataEnv","","",null,null],[10,"get_metadata","","",53,null],[11,"eq","","",52,null],[11,"ne","","",52,null],[11,"default","","",52,{"inputs":[],"output":{"name":"metadata"}}],[11,"fmt","","",52,null],[11,"clone","","",52,null],[11,"has_data","","",52,null],[0,"instantiate","gluon_base","",null,null],[3,"AliasInstantiator","gluon_base::instantiate","",null,null],[12,"inst","","",54,null],[12,"env","","",54,null],[3,"Instantiator","","",null,null],[12,"named_variables","","",55,null],[5,"instantiate","","",null,{"inputs":[{"name":"tctype"},{"name":"f"}],"output":{"name":"tctype"}}],[5,"unroll_app","","",null,{"inputs":[{"name":"type"}],"output":{"name":"option"}}],[11,"new","","",54,{"inputs":[{"name":"instantiator"},{"name":"typeenv"}],"output":{"name":"aliasinstantiator"}}],[11,"remove_aliases","","Removes type aliases from `typ` until it is an actual type",54,null],[11,"remove_aliases_cow","","",54,null],[11,"remove_alias","","",54,null],[11,"maybe_remove_alias","","",54,null],[11,"type_of_alias","","",54,null],[11,"default","","",55,{"inputs":[],"output":{"name":"instantiator"}}],[11,"fmt","","",55,null],[11,"new","","",55,{"inputs":[],"output":{"name":"instantiator"}}],[11,"instantiate","","Instantiates a type, replacing all generic variables with fresh type variables",55,null],[11,"instantiate_","","",55,null]],"paths":[[3,"TcIdentEnvWrapper"],[3,"TcIdent"],[3,"TcIdentEnv"],[3,"Location"],[3,"Span"],[3,"Spanned"],[3,"Located"],[3,"Alternative"],[3,"Array"],[3,"Lambda"],[3,"TypeBinding"],[3,"Binding"],[4,"LiteralEnum"],[4,"Pattern"],[4,"Expr"],[8,"AstId"],[8,"DisplayEnv"],[8,"IdentEnv"],[8,"MutVisitor"],[8,"Typed"],[3,"EmptyEnv"],[6,"LExpr"],[6,"LPattern"],[3,"FixedMap"],[3,"FixedVec"],[3,"Symbol"],[3,"NameBuf"],[3,"Name"],[3,"Components"],[3,"Symbols"],[3,"SymbolModule"],[3,"Errors"],[3,"InFile"],[3,"TypeVariable"],[3,"Generic"],[3,"AliasData"],[3,"Field"],[3,"ArgIterator"],[4,"Type"],[4,"BuiltinType"],[4,"Kind"],[8,"KindEnv"],[8,"TypeEnv"],[8,"PrimitiveEnv"],[3,"ArcType"],[3,"RcType"],[3,"RcKind"],[3,"Alias"],[6,"ASTType"],[3,"DisplayType"],[3,"ScopedMap"],[3,"Iter"],[3,"Metadata"],[8,"MetadataEnv"],[3,"AliasInstantiator"],[3,"Instantiator"]]}; initSearch(searchIndex);