<?xml version="1.0"?>
<doc>
    <assembly>
        <name>JetBrains.Platform.ComponentModel</name>
    </assembly>
    <members>
        <member name="T:JetBrains.Application.AssemblyReferenceClass_ComponentModel">
            <summary>
            Forces the compiler to add assembly references.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyBinderExtensions.GetBinder(JetBrains.Application.Bindings.IAssemblyMasterBinder,JetBrains.Metadata.Utils.AssemblyNameInfo)">
            <summary>
            Gets the binder for the specific assembly.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyBinderExtensions.IsAssemblyOkToBeMissing(JetBrains.Application.Bindings.IAssemblyMasterBinder,JetBrains.Metadata.Utils.AssemblyNameInfo)">
            <summary>
            Logic for binders, when they should complain on a missing assembly, and when they should not.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.AssemblyMasterBinderOnAssemblyItems">
            <summary>
            Helper for binding part catalog assemblies to assembly items, with <see cref="T:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnification" /> for loading into Runtime.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnAssemblyItems.myCacheRuntimeAssemblies">
            <summary>
            Avoid requesting too many realizations for the same assembly.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Bindings.AssemblyMasterBinderOnAssemblyItems.AssemblyItems">
            <summary>
            Gets the assembly items known to this binder.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnAssemblyItems.AssemblyNameMatchingPolicy.Exact">
            <summary>
            Only if assembly names are strictly equal.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnAssemblyItems.AssemblyNameMatchingPolicy.ExactThenLatest">
            <summary>
            If there is a strictly equal assembly name, uses that one.
            Otherwise, looks up the newest assembly (biggest version) with the same simple name.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnAssemblyItems.AssemblyNameMatchingPolicy.AlwaysLatest">
            <summary>
            Always looks up the newest assembly with the same simple name, even if we have an older version which exactly matches the request.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.myMapPathToName">
            <summary>
            Filled on start with what we know initially, then completed on demand.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.myMapSimpleNameToPaths">
            <summary>
            Filled on demand.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.myPathsNotReadForNames">
            <summary>
            Filled on start, after that, accessed under lock-on-itself.
            Sorted by file name without ext case-insensitively.
            When entries are used, their path is set to NULL. When all the paths are used, the list is emptied.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.myRuntimeAssemblyResolver">
            <summary>
            Fallback to GAC, thread-safe.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.#ctor(JetBrains.Lifetimes.Lifetime,System.Collections.Generic.IEnumerable{JetBrains.Metadata.Utils.AssemblyNameAndLocation},System.Nullable{JetBrains.Metadata.Reader.API.DotNetFrameworkCurrentRuntimeAssemblyResolver.RuntimeAssemblySources},System.Collections.Generic.IEnumerable{JetBrains.Metadata.Utils.AssemblyNameInfo},JetBrains.Application.Bindings.AssemblyVersionRedirection)">
            <summary>
            Creates the disk-based assembly resolver. Gives the full list of resolvable assemblies on custom paths, plus possibly adds the GAC.
            </summary>
            <param name="lifetime"></param>
            <param name="items">Original assemblies. At least disk paths MUST be given for every item. Names are optional.</param>
            <param name="gacsources">Whether to fallback-resolve into GAC when running out of <paramref name="items" />, and how exactly. NULL means don't. NOTE: backwards-compatible option is <see cref="F:JetBrains.Metadata.Reader.API.DotNetFrameworkCurrentRuntimeAssemblyResolver.RuntimeAssemblySources.MachineGacAndVisualStudio" />.</param>
            <param name="possiblymissings">Don't fail if these assemblies are missing when trying to resolve them.</param>
            <param name="redirections">Allows to redirect certain assembly versions: if asked for assembly version X, load version Y instead.</param>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.GetPathByNameCore_ProcessAllEntriesFromPathsNotRead(JetBrains.Metadata.Utils.AssemblyNameInfo,System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Collections.Immutable.ImmutableArray{JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.FoundPath}})">
            <summary>
            Helper for <see cref="M:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.GetPathByNameCore(JetBrains.Metadata.Utils.AssemblyNameInfo)" />.
            Reads actual assembly names for all paths still left in the <see cref="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.myPathsNotReadForNames" />. Clears the list.
            Assumed to have a lock on that list.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.FirstTimeFillNameToPathMapFromReverse">
            <summary>
            When we first need name->path mapping, fills the dictionary with currently-known path->name mappings.
            NOTE that it's only those we know / touched, and most of them might still sit on <see cref="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.myPathsNotReadForNames" />.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.FoundPath.AssemblyFullName">
            <summary>
            The full name of the assembly as it were looked up (the key in the map is a simple name).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles.FoundPath.Path">
            <summary>
            Disk path where the assembly were found (either added by path, or looked up in GAC).
            NULL when caching a failure.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.AssemblyMasterBinderOnRuntimeAssemblies">
            <summary>
            Helper for binding part catalog assemblies to assembly items, in case we're running off the runtime assemblies.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnification">
            <summary>
            Allows to unify assembly files, as realized on disk, by their unique assembly name.
            This is essential when you're loading runtime assemblies from them, otherwise your runtime types won't match.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnification.RealizeAssemblyItem(JetBrains.Lifetimes.Lifetime,JetBrains.Metadata.Utils.IAssemblyItem)">
            <summary>
            Realizes your assembly item on disk, or extends the lifetime of an already-realized assembly item with the same name and returns its path.
            </summary>
            <param name="lifetime">Will exist at the given path for at least this lifetime. Don't delete yourself, might be shared.</param>
            <param name="item">Assembly name and content.</param>
            <returns>Path to the disk file for assembly.</returns>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnification.RealizeAssemblyItemNew(JetBrains.Lifetimes.Lifetime,JetBrains.Metadata.Utils.IAssemblyItem,JetBrains.Util.RelativePath)">
            <summary>
            Specifies the explicit subfolder name to place the file into. The file name is still taken from the item.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnification.RealizeAssemblyItemNew(JetBrains.Lifetimes.Lifetime,JetBrains.Metadata.Utils.AssemblyNameInfo,System.Func{JetBrains.Util.FileSystemPath[]})">
            <summary>
            Registers a user-realized assembly item.
            Fails if already present.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnificationMaster">
            <summary>
            The master unification manager which can share with a slave instance (e.g. running in another appdomain).
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnificationMaster.MasterExportForReuseInSlave(JetBrains.Util.Storage.StructuredStorage.IStructuredStorage)">
            <summary>
            In master instance, writes the current realizations.
            Reading them with <see cref="T:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnificationSlave" /> allows to reuse unified paths for allemblies already realized by the master instance.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnificationMaster.MasterImportForReleaseFromSlave(JetBrains.Util.Storage.StructuredStorage.IStructuredStorage)">
            <summary>
            In master instance, loads what's been yielded in a slave instance for later release by the master instance.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnificationSlave">
            <summary>
            Loads the realizations already known in some master instance and saved with <see cref="M:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnificationMaster.MasterExportForReuseInSlave(JetBrains.Util.Storage.StructuredStorage.IStructuredStorage)" />.
            Won't be freed by slave instance upon termination.
            In slave instance, if some realizations were made while running the slave instance, defers their release (and deletion) for the master instance.
            Example: slave instance running in appdomain, realizing and executing assemblies, can't release them because they're locked by the appdomain, but the master instance can after the appdomain is unloaded.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemData.Paths">
            <summary>
            The first one is the DLL path, the rest are aux paths.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification">
            <summary>
            Allows to unify assembly files, as realized on disk, by their unique assembly name.
            This is essential when you're loading runtime assemblies from them, otherwise your runtime types won't match.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification.InstallAssemblyResolver(JetBrains.Lifetimes.Lifetime)">
            <summary>
            For assemblies which has been passed thru unification, and for which we know the mapping of the assembly name onto disk, installs an assembly resolver into the current appdomain.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification.RealizeAssemblyItem(JetBrains.Lifetimes.Lifetime,JetBrains.Metadata.Utils.IAssemblyItem)">
            <summary>
            Realizes your assembly item on disk, or extends the lifetime of an already-realized assembly item with the same name and returns its path.
            </summary>
            <param name="lifetime">Will exist at the given path for at least this lifetime. Don't delete yourself, might be shared.</param>
            <param name="item">Assembly name and content.</param>
            <returns>Path to the disk file for assembly.</returns>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification.RealizeAssemblyItemNew(JetBrains.Lifetimes.Lifetime,JetBrains.Metadata.Utils.IAssemblyItem,JetBrains.Util.RelativePath)">
            <summary>
            Specifies the explicit subfolder name to place the file into. The file name is still taken from the item.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification.RealizeAssemblyItemNew(JetBrains.Lifetimes.Lifetime,JetBrains.Metadata.Utils.AssemblyNameInfo,System.Func{JetBrains.Util.FileSystemPath[]})">
            <summary>
            Registers a user-realized assembly item.
            Fails if already present.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification.MasterEnsureReleaseOnShutdown">
            <summary>
            Master shutdown, releases what's come from slave.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification.UnrealizeAssemblyItem(JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemData,JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification.FilesInUse)">
            <summary>
            Reverts assembly realization when its locks are gone, or when the object ends.
            Has an option to tolerate locked files, e.g. for the Slave mode.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification.Role.Master">
            <summary>
            Default mode.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnification.Role.Slave">
            <summary>
            Slave mode. Means we load some perdefined
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnificationEx.RealizeOnAssemblyResolveDemand(JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnification,JetBrains.Lifetimes.Lifetime,System.Collections.Generic.ICollection{JetBrains.Metadata.Utils.AssemblyItem})">
            <summary>
            Watch for assembly resolve events, if fired for one of the given assemblies, realize it using the assembly unification and load.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnificationMaster">
            <summary>
            The master unification manager which can share with a slave instance (e.g. running in another appdomain).
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.AssemblyUnification.RealizedAssemblyItemUnificationSlave">
            <summary>
            Loads the realizations already known in some master instance and saved with <see cref="M:JetBrains.Application.Bindings.AssemblyUnification.IRealizedAssemblyItemUnificationMaster.MasterExportForReuseInSlave(JetBrains.Util.Storage.StructuredStorage.IStructuredStorage)" />.
            Won't be freed by slave instance upon termination.
            In slave instance, if some realizations were made while running the slave instance, defers their release (and deletion) for the master instance.
            Example: slave instance running in appdomain, realizing and executing assemblies, can't release them because they're locked by the appdomain, but the master instance can after the appdomain is unloaded.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.AssemblyVersionRedirection">
            <summary>
            Allows to specify assembly version redirections for <see cref="T:JetBrains.Application.Bindings.AssemblyMasterBinderOnDiskFiles"/>, for solving cases when an assembly points to another one but not of the version which we have available.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.IAssemblyBinder">
            <summary>
            Knows how to bind an assembly to various real-life stuff.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Bindings.IAssemblyBinder.AssemblyName">
            <summary>
            Gets the name of the assembly which this binder binds.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.IAssemblyBinder.BindToDiskPath(JetBrains.Util.OnError)">
            <summary>
            If the assembly already resides on disk, returns its disk path.
            </summary>
            <param name="onerror"></param>
        </member>
        <member name="M:JetBrains.Application.Bindings.IAssemblyBinder.BindToMetadataAssembly(JetBrains.Lifetimes.Lifetime,JetBrains.Util.OnError)">
            <summary>
              <para>Loads the metadata reader for this assembly.</para>
              <para>If you got a row of assemblies and a <see cref="T:JetBrains.Application.Bindings.IAssemblyMasterBinder" /> for them, it's better to use the master binder to create a <see cref="T:JetBrains.Metadata.Reader.API.MetadataLoader" />, then call <see cref="M:JetBrains.Metadata.Reader.API.MetadataLoader.TryLoad(JetBrains.Metadata.Utils.AssemblyNameInfo,System.Func{JetBrains.Metadata.Utils.AssemblyNameInfo,System.Boolean},System.Boolean,JetBrains.Metadata.Reader.API.IMetadataAssembly,System.Func{System.Boolean})" /> on it to load the assemblies by name, on the same loader in a row. This provides for the best perf and also manages metadata access lifetimes correctly.</para>
            </summary>
            <param name="lifetime">Metadata loader's lifetime.</param>
            <param name="onerror"></param>
        </member>
        <member name="M:JetBrains.Application.Bindings.IAssemblyBinder.BindToRuntimeAssembly(JetBrains.Util.OnError)">
            <summary>
            Loads the runtime assembly.
            </summary>
            <param name="onerror"></param>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Application.Bindings.IAssemblyBinder.BindToStream(JetBrains.Lifetimes.Lifetime,JetBrains.Util.OnError)">
            <summary>
            Gets the assembly contents as a stream.
            </summary>
            <param name="lifetime"></param>
            <param name="onerror"></param>
            <returns></returns>
        </member>
        <member name="T:JetBrains.Application.Bindings.IAssemblyMasterBinder">
            <summary>
            Like an <see cref="T:JetBrains.Application.Bindings.IAssemblyBinder" />, but for a group of assemblies rather than for a single assembly.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Bindings.IAssemblyMasterBinder.AssembilesWhitelistedToBeMissing">
            <summary>
              <para>Gets the collection of assemblies which are referenced from within the product assemblies but are non-critical and might be missing in certain local machine configurations.</para>
              <para>For example, full app packages would have references to all VS version assemblies, but only a machine with such VS installed would have them actually available for resolve.</para>
              <para>For an assembly in the list, it's not an error to be resolved into a NULL value.</para>
              <para>The lookup only favors assembly Simple Name and Version. Culture or signature are ignored when checking.</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.IAssemblyMasterBinder.BindToDiskPath(JetBrains.Metadata.Utils.AssemblyNameInfo,JetBrains.Util.OnError)">
            <summary>
            If the assembly already resides on disk, returns its disk path.
            Otherwise attempts to write the assembly to a disk location and return its path.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.IAssemblyMasterBinder.BindToRuntimeAssembly(JetBrains.Metadata.Utils.AssemblyNameInfo,JetBrains.Util.OnError)">
            <summary>
            Loads the runtime assembly.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.IAssemblyMasterBinder.BindToStream(JetBrains.Lifetimes.Lifetime,JetBrains.Metadata.Utils.AssemblyNameInfo,JetBrains.Util.OnError)">
            <summary>
            Gets the assembly contents as a stream.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.IAssemblyMasterBinder.GetBindings(JetBrains.Metadata.Utils.AssemblyNameInfo)">
            <summary>
            Gets the immediately-available bindings of the assembly, without creating any secondary representations.
            I.e. if we have an assembly as an in-memory stream only, <see cref="M:JetBrains.Application.Bindings.IAssemblyMasterBinder.BindToDiskPath(JetBrains.Metadata.Utils.AssemblyNameInfo,JetBrains.Util.OnError)" /> would write it out to disk and return the path, while this method only returns a stream.
            For an assembly that isn't available, the Result monad would have a failure; reading its raw value would give all possible representations as NULL.
            If called multiple times, the existing bindings aren't supposed to disappear, but new bindings might become available.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.MetadataLoaderAssemblyResolverOnMasterBinder">
            <summary>
            Tells how to bind metadata assemblies by name based on the <see cref="T:JetBrains.Application.Bindings.IAssemblyMasterBinder" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Bindings.MetadataLoaderAssemblyResolverOnMasterBinder.#ctor(JetBrains.Application.Bindings.IAssemblyMasterBinder)">
            <summary>
            Tells how to bind metadata assemblies by name based on the <see cref="T:JetBrains.Application.Bindings.IAssemblyMasterBinder" />.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Bindings.PartCatalogAttributeBinding">
            <summary>
            Can create the real runtime instance of an attribute based on its catalog record.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.CatalogAttributeFilter.GetParts(JetBrains.Util.dataStructures.Sources.CollectionSource{JetBrains.Application.Catalogs.PartCatalogTypeMember})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.CatalogAttributeFilter.JetBrains#Application#Catalogs#Filtering#IPartCatalogFilter#IsPassing(JetBrains.Application.Catalogs.PartCatalogTypeMember)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.CatalogIntersectFilterEx.Intersect(System.Collections.Generic.IEnumerable{JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter})">
            <summary>
            Creates a group that passes an item only if all filters in the group pass it.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.CatalogIntersectFilterEx.IntersectIfNotNull(JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter,JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter)">
            <summary>
            Creates a group that passes an item only if all filters in the group pass it.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.CatalogIntersectFilterEx.IntersectWith(JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter,JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter)">
            <summary>
            Creates a group that passes an item only if all filters in the group pass it.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter">
            <summary>
            A filter that can be applied to a part catalog to limit the set of parts returned from the querying methods.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter.GetParts(JetBrains.Util.dataStructures.Sources.CollectionSource{JetBrains.Application.Catalogs.PartCatalogType})">
            <summary>
            Applies the filter to a list of parts.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter.GetParts(JetBrains.Util.dataStructures.Sources.CollectionSource{JetBrains.Application.Catalogs.PartCatalogTypeMember})">
            <summary>
            Applies the filter to a list of parts.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter.IsPassing(JetBrains.Application.Catalogs.PartCatalogType)">
            <summary>
            Gets whether the specific part type is passing the filter.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter.IsPassing(JetBrains.Application.Catalogs.PartCatalogTypeMember)">
            <summary>
            Gets whether the specific part type is passing the filter.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.Filtering.IPartCatalogFilterRequiresTraits">
            <summary>
            A filter which can be calculated on part catalog type traits, if the catalog knows how to track them.
            All common filters should support this to show good perf.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.Filtering.IPartCatalogFilterRequiresTraits.Traits">
            <summary>
            Gets the names of the traits that this filter requires.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup">
            <summary>
            ANDs a group of filters, providing for the Intersect operation.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup.AllFilters">
            <summary>
            Returns all of the filters originally submitted for this component, with other intersect-filters flattened into a plain list.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup.NonTraitRequiringFilters">
            <summary>
            Gets a subset of <see cref="P:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup.AllFilters" /> that does not implement <see cref="T:JetBrains.Application.Catalogs.Filtering.IPartCatalogFilterRequiresTraits" />.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup.RequiredTraits">
            <summary>
            Gets the list of traits collected from those filters in <see cref="P:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup.AllFilters" /> that implement <see cref="T:JetBrains.Application.Catalogs.Filtering.IPartCatalogFilterRequiresTraits" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup.CreateIntersection(System.Collections.Generic.IEnumerable{JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter})">
            <summary>
            Creates a group that passes an item only if all filters in the group pass it.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup.CreateIntersection(JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter,JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter)">
            <summary>
            Creates a group that passes an item only if all filters in the group pass it.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup.GetParts(JetBrains.Util.dataStructures.Sources.CollectionSource{JetBrains.Application.Catalogs.PartCatalogTypeMember})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.PartCatalogFilterGroup.JetBrains#Application#Catalogs#Filtering#IPartCatalogFilter#IsPassing(JetBrains.Application.Catalogs.PartCatalogTypeMember)">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Catalogs.Filtering.PartCatalogTrait">
            <summary>
            Typed wrapper for the name of a part catalog trait.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.PartCatalogTrait.#ctor(System.String,System.String)">
            <summary>
            Typed wrapper for the name of a part catalog trait.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations">
            <summary>
            The list of individual bool-result operations on traits whose results are ANDed.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.Operations">
            <summary>
            The list of individual bool-result operations on traits whose results are ANDed.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.TotalTraitsCount">
            <summary>
            Gives the number of traits taking part in all operations, for preallocing data structures.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.Operation">
            <summary>
            Describes one operation on traits.
            The equality is a fast-check for whether this struct is NULL, for storing in FLLists.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.Operation.GetCommonNamespace">
            <summary>
            Asserts there are traits, they're all in the same namespace, and gives that ns.
            </summary>
            <returns></returns>
        </member>
        <member name="F:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.OperationKind.HasAtLeast">
            <summary>
            The item must have at least the given traits.
            Submitting an empty <see cref="F:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.Operation.Traits"/> group makes a pass-all filter.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.OperationKind.HasAtMost">
            <summary>
            The item might only have the given traits off their namespace (but not required to); having any other traits from the same namespace is a no-match.
            All traits in this group must be in the same namespace.
            Submitting an empty <see cref="F:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.Operation.Traits"/> group is an edge case (because there's no way to get the intended namespace without at least one trait), and the operation result is define to be a no-pass filter (rejects all parts).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.OperationKind.HasAnyOf">
            <summary>
            The item must have at least one of the traits.
            Submitting an empty <see cref="F:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations.Operation.Traits"/> group is an edge case (can't run the any-of operation without items), and the operation result is define to be a no-pass filter (rejects all parts).
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.IPartCatalogSet">
            <summary>
            Gets the parts in this set. Previously, a set could have a live collection of part catalogs, but effectively this were not properly supported by the runtime, so now it's just the one catalog always.
            The wrapping interface is used for creating typed wrappers (Environment, Shell, etc catalog sets).
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.IPartCatalogSet.Catalog">
            <summary>
            The one and only part catalog in this set.
            The parts set is constant and cannot change during runtime.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.IPartCatalogStorage.AttributeArgumentGetBoxedValue(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <summary>
            Gets the attribute argument value of any type by boxing it into an object. Part catalog types and arrays are handled correctly. NULL is also a valid value.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.IPartCatalogStorage.AttributeArgumentGetPrimitiveValue(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken},System.Nullable{JetBrains.Application.Table.Record.AttributeArgumentValueElementType})">
            <summary>
            Gets the primitive value of an attribute argument, in case it's really a primitive value. If you plan on reinterpret-casting the return value, specify <paramref name="typeExpected" /> to ensure that it won't lose data. If omitted, the primitive value will be returned as is.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.IPartCatalogStorage.AttributeArgumentGetStringValue(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <summary>
            For an attribute argument of type <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.String" />, returns the source for that string.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.IPartCatalogStorage.AttributeArgumentGetTypeValue(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <summary>
            For an attribute argument of type <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.Type" />, returns the catalog type for that type.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.IPartCatalogStorage.AttributeArgumentGetValueElementType(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <summary>
            Gets the type of the attr arg value.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalog.AllPartMembers">
            <summary>
              <para>This is the shortcut API for <c>Assemblies.SelectMany(PartMembers)</c> which tries to perform a single lookup instead of combining collections.</para>
              <para>Gets all of the part members in this catalog — all <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartMembers">part members</see> in all <see cref="P:JetBrains.Application.Catalogs.PartCatalog.CatalogedAssemblies">cataloged assemblies</see>.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalog.AllPartTypes">
            <summary>
              <para>This is the shortcut API for <c>Assemblies.SelectMany(PartTypes)</c> which tries to perform a single lookup instead of combining collections.</para>
              <para>Gets all of the part types in this catalog — all <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartTypes">part types</see> in all <see cref="P:JetBrains.Application.Catalogs.PartCatalog.CatalogedAssemblies">cataloged assemblies</see>.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalog.CatalogedAssemblies">
            <summary>
              <para>Gets the list of cataloged assemblies.</para>
              <para>See <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.IsCataloged" /> on what are these.</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalog.ApplyFilter(JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter)">
            <summary>
              <para>Returns an interface to this catalog filtered by some criteria. The filtering only applies to parts, i.e. part types from cataloged assemblies, as returned from <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartTypes" />.</para>
              <para>Typical criteria are: has attribute, is in module zone.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAssembly.Binder">
            <summary>
            Knows how to bind part catalog assemblies to various real-life stuff.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAssembly.FullName">
            <summary>
            Gets the full name of the assembly without allocating heap memory.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAssembly.IsCataloged">
            <summary>
              <para>Gets whether this assembly were originally intended for cataloging, were fully inspected, and has its part types, referenced assemblies, custom attributes and so on fully available.</para>
              <para>Besides these, the catalog will also have all the assemblies mentioned in process of cataloging (e.g. to return something from <see cref="P:JetBrains.Application.Catalogs.PartCatalogType.Assembly" />), and those do not have these parameters defined.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartMembers">
            <summary>
              <para>For an <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.IsCataloged" /> assembly, gets the part members in this assembly — those that qualify for the part, i.e. got the <see cref="T:JetBrains.Application.Parts.PartAttribute" /> or its derivatives on themselves.</para>
              <para>This assembly might also have non-part members known to this catalog, at least as constructors. Their <see cref="P:JetBrains.Application.Catalogs.PartCatalogTypeMember.DeclaringType" />'s <see cref="P:JetBrains.Application.Catalogs.PartCatalogType.Assembly" /> will return this assembly, but this members list does not include them.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartTypes">
            <summary>
              <para>For an <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.IsCataloged" /> assembly, gets the part types in this assembly — those that qualify for the part, i.e. got the <see cref="T:JetBrains.Application.Parts.PartAttribute" /> or its derivatives on themselves or one of their members.</para>
              <para>This assembly might also have non-part types known to this catalog, e.g. as part base/member/param types and so on. Their <see cref="P:JetBrains.Application.Catalogs.PartCatalogType.Assembly" /> will return this assembly, but this types list does not include them.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAssembly.ReferencedAssemblies">
            <summary>
            For an <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.IsCataloged" /> assembly, gets the list of its assembly references.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAssembly.SimpleName">
            <summary>
            Gets the simple name of the assembly without allocating heap memory.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAssembly.CreateAssemblyName">
            <summary>
              <para>Allocates the runtime object for the assembly name of this assembly.</para>
              <para>For operations which only need the assembly name text, use <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.FullName" /> or <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.SimpleName" />.</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAssembly.GetPartAttributes">
            <summary>
            For an <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.IsCataloged" /> assembly, gets the custom attributes of this assembly which are derived from the <see cref="T:JetBrains.Application.Parts.PartAttribute" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAssembly.GetPartAttributes(System.Type)">
            <summary>
            For an <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.IsCataloged" /> assembly, gets the custom attributes of this assembly which are derived from the <see cref="T:JetBrains.Application.Parts.PartAttribute" /> and from <paramref name="typeAttrBase" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAssemblyEx.Bind(JetBrains.Application.Catalogs.PartCatalogAssembly)">
            <summary>
            Gets the real runtime object for this assembly. Uses <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.Binder" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAssemblyEx.GetPartAttributes``1(JetBrains.Application.Catalogs.PartCatalogAssembly)">
            <summary>
            For an <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.IsCataloged" /> assembly, gets the custom attributes of this assembly which are derived from the <see cref="T:JetBrains.Application.Parts.PartAttribute" /> and from <typeparamref name="TAttribute" />.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.PartCatalogAttribute">
            <summary>
            A custom attribute in the part catalog, either on a type or on an assembly.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAttribute.Arguments">
            <summary>
            Gets the arguments accessor.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAttribute.ArgumentsOptional">
            <summary>
            Gets the arguments accessor.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAttribute.IsConstructorKnown">
            <summary>
            Whether we know which .ctor was encoded for creation of this attr (e.g. there's no such info when getting it from Reflection rather then by reading metadata).
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAttribute.Type">
            <summary>
            The type of the attribute.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttribute.GetArguments">
            <summary>
            Gets the arguments which were assigned upon creation of this attribute. This includes constructor positional parameters, field assignments, and property assignments.
            </summary>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttribute.GetConstructorFormalParameterTypes">
            <summary>
            The signature of the .ctor which is encoded for creation of the attr instance, if known.
            An empty array means the attr is to be created with an empty .ctor.
            If the .ctor is not known (see <see cref="P:JetBrains.Application.Catalogs.PartCatalogAttribute.IsConstructorKnown" />), throws an exception.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttribute.GetInstance(JetBrains.Util.OnError)">
            <summary>
            Tries creating an attribute runtime instance if we got enough information.
            Should be OK if the attribute originates from a metadata reader and has <see cref="P:JetBrains.Application.Catalogs.PartCatalogAttribute.IsConstructorKnown" />, but with runtime type attributes this only works if a parameterless attribute .ctor is available.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttribute.TryFindArgument(System.String)">
            <summary>
            Queries one of the <see cref="M:JetBrains.Application.Catalogs.PartCatalogAttribute.GetArguments" /> by name.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.Disposition">
            <summary>
            The set of attribute arguments records the set of values which are applied in the code to the attr. These include: ctor positional parameters, ctor named parameters, fields, and properties. This property tells in which way an arg were assigned to the attr, so this can be used for constructing an attr runtime instance.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetArrayValue">
            <summary>Gets the array value of the attribute argument, throws for any other specific type, including a <c>NULL</c> value.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetBooleanValue">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetBoxedValue">
            <summary>Gets the value of the attribute argument of any type boxed as an object. This method won't fail for any data type, but incurs boxing.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetByteValue">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetCharValue">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetDoubleValue">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetInt16Value">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetInt32Value">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetInt64Value">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetIsNullValue">
            <summary>
            Gets if the attribute value is <c>NULL</c>.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetRawPrimitiveValue">
            <summary>
            Gets the attribute primitive value, if it actually is of a primitive type, in its raw form of the eight little-endian bytes. All other primitive-value methods coerce this value to a specific type.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetSByteValue">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetSingleValue">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetStringValue">
            <summary>Gets the string value of the attribute argument, throws for any other specific type, including <c>NULL</c>.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetTypeValue">
            <summary>Gets the type value of the attribute argument, throws for any other specific type, including <c>NULL</c>.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetUInt16Value">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetUInt32Value">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgument.GetUInt64Value">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentDisposition.Equals(JetBrains.Application.Catalogs.PartCatalogAttributeArgumentDisposition)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentDisposition.CompareTo(JetBrains.Application.Catalogs.PartCatalogAttributeArgumentDisposition)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentDisposition.CompareTo(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentDisposition.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentDisposition.GetHashCode">
            <inheritdoc />
        </member>
        <member name="F:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentDisposition.NotApplicable">
            <summary>
            N/A disposition, for example, for an array element whom together make an array value for an argument.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentEx.GetArrayValueOrNull(JetBrains.Application.Catalogs.PartCatalogAttributeArgument)">
            <summary>Gets the string value of the attribute argument (or <c>NULL</c>), throws for any other specific type.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentEx.GetStringValueOrNull(JetBrains.Application.Catalogs.PartCatalogAttributeArgument)">
            <summary>Gets the string value of the attribute argument (or <c>NULL</c>), throws for any other specific type.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentEx.GetTypeValueOrNull(JetBrains.Application.Catalogs.PartCatalogAttributeArgument)">
            <summary>Gets the type value of the attribute argument (or <c>NULL</c>), throws for any other specific type.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentEx.GetValue``1(JetBrains.Application.Catalogs.PartCatalogAttributeArgument)">
            <summary>
            Gets the typed value of the attribute argument, avoiding any boxing.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetArrayValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the array value of the attribute argument, throws for any other specific type, including a <c>NULL</c> value.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetBooleanValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetBoxedValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the value of the attribute argument of any type boxed as an object. This method won't fail for any data type, but incurs boxing.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetByteValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetCharValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetDoubleValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetInt16ValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetInt32ValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetInt64ValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetIsNullValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>
            Gets if the attribute value is <c>NULL</c>.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetRawPrimitiveValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>
            Gets the attribute primitive value, if it actually is of a primitive type, in its raw form of the eight little-endian bytes. All other primitive-value methods coerce this value to a specific type.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetSByteValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetSingleValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetStringValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the string value of the attribute argument, throws for any other specific type, including <c>NULL</c>.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetTypeValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the type value of the attribute argument, throws for any other specific type, including <c>NULL</c>.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetUInt16ValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetUInt32ValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentNullableEx.GetUInt64ValueIfDefined(System.Nullable{JetBrains.Application.Catalogs.PartCatalogAttributeArgument})">
            <summary>Gets the primitive value of the attribute argument coerced to the requested type, if coercing could be done without losing data.</summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.PartCatalogAttributeArguments">
            <summary>
            Indexer helper for attribute arguments.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAttributeArguments.All">
            <summary>
            Gets the arguments which were assigned upon creation of this attribute. This includes constructor positional parameters, field assignments, and property assignments.
            </summary>
            <returns></returns>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAttributeArguments.Item(System.String)">
            <summary>
            Looks up arguments by name.
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="T:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentsNullable">
            <summary>
            Indexer helper for attribute arguments.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentsNullable.All">
            <summary>
            Gets the arguments which were assigned upon creation of this attribute. This includes constructor positional parameters, field assignments, and property assignments.
            </summary>
            <returns></returns>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentsNullable.Item(System.String)">
            <summary>
            Looks up arguments by name.
            </summary>
            <param name="name"></param>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeEx.AddData(System.Exception,JetBrains.Application.Catalogs.PartCatalogAttribute,System.String)">
            <summary>
            Renders the attribute type and all known arguments into the exception data.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeEx.Find``2(JetBrains.Application.Catalogs.PartCatalogAttributeArguments,System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
              <para>Find argument by its name, given by the expression.</para>
              <para>NOTE that it's recommended to pre-calculate the name from expression (call <see cref="M:JetBrains.Reflection.ReflectionExtensions.GetInstanceMemberName``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}})" /> on it) and use the string parameter, for speed.</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogAttributeEx.Find(JetBrains.Application.Catalogs.PartCatalogAttributeArguments,JetBrains.Application.Table.Record.AttributeArgumentValueElementType)">
            <summary>
              <para>Looks up an argument by its element type (must be unique among other arguments).</para>
              <para>Often this is more reliable than looking up by name, because there's no early-bound way to supply a constructor paramtere name for example.</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogEx.DiagnosticsDumpCatalogToExcel(JetBrains.Application.Catalogs.PartCatalog)">
            <summary>
            TODO: consider if this should be moved into tests or into internal product actions
            </summary>
            <param name="partCatalog"></param>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogEx.DiagnosticsDumpCatalogToExcel(JetBrains.Application.Table.CatalogTables)">
            <summary>
            TODO: consider if this should be moved into tests or into internal product actions
            </summary>
            <param name="catalogTables"></param>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogStorageHelpers.TypeGetHashCode(JetBrains.Application.Catalogs.PartCatalogTypeKind,JetBrains.Util.dataStructures.Sources.StringSource,JetBrains.Util.dataStructures.Sources.StringSource)">
            <summary>
            Gets the hash code of a part catalog type.
            To ensure interoperability in hash maps, calculation of hash codes must be consistent across different storage implementations.
            </summary>
            <returns></returns>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogType.Assembly">
            <summary>
              <para>Gets the assembly for this type.</para>
              <para>For a <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartTypes">Part type</see>,this would be a <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.IsCataloged">Cataloged assembly</see>. For any other, a placeholder assembly which basically only knows its name.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogType.BaseTypes">
            <summary>
            Gets the base types of this type which includes base classes and interfaces, but does not include the type itself.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogType.ExtraTypes">
            <summary>
              <para>Raw access for serialization etc.</para>
              <para>A backend for certain type-related properties of this type.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogType.IsArray">
            <summary>
              <para>The type is actually a single-dimensional array with zero lower bound. Other cases are not supported yet.</para>
              <para>NOTE(H): If you ever need to support these, which requires a hierarchy of different type classes nesting each other, I'd rather recomment dropping this special class altogether and using the <see cref="T:JetBrains.Metadata.Reader.API.IMetadataType" /> interfaces family with a separate implementation which can be filled from runtime types, from metadata, or from cache.</para>
              <para>Call <see cref="M:JetBrains.Application.Catalogs.PartCatalogType.GetArrayItemType" /> to get the type of items in this array.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogType.IsGenericTypeDeclaraion">
            <summary>
            This is a generic type declaration, an open generic which is not specialized with any parameters.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogType.IsGenericTypeSpecialization">
            <summary>
            This is a generic type specialized with some generic actual parameters, look in <see cref="M:JetBrains.Application.Catalogs.PartCatalogType.GetGenericActualParameters" /> for their values.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogType.IsReference">
            <summary>
              <para>The type is a reference (as in ref/out parameters), a.k.a. <see cref="P:System.Type.IsByRef">ByRef type</see>.</para>
              <para>Call <see cref="M:JetBrains.Application.Catalogs.PartCatalogType.GetReferenceTargetType" /> to get the referenced type.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogType.PartMembers">
            <summary>
            For a type which is a <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartTypes">Part type</see>, gets its members which are Part members, i.e. have the <see cref="T:JetBrains.Application.Parts.PartAttribute" /> or one of its derivatives on them.
            </summary>
            <value></value>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogType.Bind">
            <summary>
            Binds to the runtime type.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogType.GenericTypeParameterOwner">
            <summary>
            For a type which is a generic type parameter reference, gets the type which declares the generic formal parameter.
            Note that this might be any class containing the usage (immediate, outer, outer-outer, etc).
            For a method parameter, I believe the choice is limited to the containing method.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogType.GetArrayItemType">
            <summary>
            For an array type, returns a type of the array items (without the array rank). Much like getting the only generic parameter of the <see cref="T:System.Collections.Generic.IList`1" /> for its item type.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogType.GetGenericTypeDeclarationFullName">
            <summary>
            For a generic type specialization (<see cref="P:JetBrains.Application.Catalogs.PartCatalogType.IsGenericTypeSpecialization" />), gets the full type name of the matching generic type definition, e.g. <c>System.Collections.Generic.IList`1</c>, which can be matched with the CLR non-specialized type.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogType.GetPartAttributes">
            <summary>
            For a type which is a <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartTypes">Part type</see>, gets the custom attributes on this type which are derived from the <see cref="T:JetBrains.Application.Parts.PartAttribute" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogType.GetPartAttributes(System.Type)">
            <summary>
            For a type which is a <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartTypes">Part type</see>, gets the custom attributes on this type which are derived from the <see cref="T:JetBrains.Application.Parts.PartAttribute" /> and from <paramref name="typeAttrBase" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogType.GetReferenceTargetType">
            <summary>
            For a reference type, returns the type being referenced.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogTypeEx.GetPartAttributes``1(JetBrains.Application.Catalogs.PartCatalogType)">
            <summary>
            For a type which is a <see cref="P:JetBrains.Application.Catalogs.PartCatalogAssembly.PartTypes">Part type</see>, gets the custom attributes on this type which are derived from the <see cref="T:JetBrains.Application.Parts.PartAttribute" /> and from <typeparamref name="TAttribute" />.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.PartCatalogTypeIdentityComparer">
            <summary>
            Compares if two PCTypes are the same instances, does not go in details on which types they actually do represent.
            This might result in getting false negatives, but should be fast enough for caching.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.PartCatalogTypeKind">
            <summary>
            The kind of the <see cref="T:JetBrains.Application.Catalogs.PartCatalogType" />, if it's a regular type, or an array of types, generic, etc.
            </summary>
            <remarks>These are not flags, even though values are assigned bit-independently for convenience.</remarks>
        </member>
        <member name="F:JetBrains.Application.Catalogs.PartCatalogTypeKind.Regular">
            <summary>
            A type declaration or a type usage which has no additional info to the type declaration (not generic, not reference, not array, etc).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.PartCatalogTypeKind.GenericDeclaration">
            <summary>
            This is a generic type declaration, an open generic which is not specialized with any parameters. No additional methods available.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.PartCatalogTypeKind.GenericSpecialization">
            <summary>
            This is a generic type specialized with some generic actual parameters, look in <see cref="M:JetBrains.Application.Catalogs.PartCatalogType.GetGenericActualParameters" /> for their values.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.PartCatalogTypeKind.Array">
            <summary>
              <para>The type is actually a single-dimensional array with zero lower bound. Other cases are not supported yet.</para>
              <para>NOTE(H): If you ever need to support these, which requires a hierarchy of different type classes nesting each other, I'd rather recomment dropping this special class altogether and using the <see cref="T:JetBrains.Metadata.Reader.API.IMetadataType" /> interfaces family with a separate implementation which can be filled from runtime types, from metadata, or from cache.</para>
              <para>Call <see cref="M:JetBrains.Application.Catalogs.PartCatalogType.GetArrayItemType" /> to get the type of items in this array.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.PartCatalogTypeKind.Reference">
            <summary>
              <para>The type is a reference (as in ref/out parameters), a.k.a. <see cref="P:System.Type.IsByRef">ByRef type</see>.</para>
              <para>Call <see cref="M:JetBrains.Application.Catalogs.PartCatalogType.GetReferenceTargetType" /> to get the referenced type.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.PartCatalogTypeKind.GenericTypeParameterReference">
            <summary>
            This type is a reference to the type of the class generic parameter.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.PartCatalogTypeKind.GenericMethodParameterReference">
            <summary>
            This type is a reference to the type of the method generic parameter.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Catalogs.PartCatalogTypeMember.DeclaringType">
            <summary>
            This object is a member of the type returned from this property.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogTypeMember.GetPartAttributes">
            <summary>
            Gets the custom attributes on this member which are derived from the <see cref="T:JetBrains.Application.Parts.PartAttribute" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogTypeMember.GetPartAttributes(System.Type)">
            <summary>
            Gets the custom attributes on this member which are derived from the <see cref="T:JetBrains.Application.Parts.PartAttribute" /> and from <paramref name="typeAttrBase" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.PartCatalogTypeMemberEx.GetPartAttributes``1(JetBrains.Application.Catalogs.PartCatalogTypeMember)">
            <summary>
            Gets the custom attributes on this member which are derived from the <see cref="T:JetBrains.Application.Parts.PartAttribute" /> and from <typeparamref name="TAttribute" />.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Catalogs.PartCatalogTypeMemberKind">
            <summary>
            Which kind of member a <see cref="T:JetBrains.Application.Catalogs.PartCatalogTypeMember" /> is.
            </summary>
            <remarks>These are not flags, even though values are assigned bit-independently for convenience.</remarks>
        </member>
        <member name="T:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType">
            <summary>
            When we need to represent an already-loaded <see cref="T:System.Type">runtime type</see> as a <see cref="T:JetBrains.Application.Catalogs.PartCatalogType" />, this storage serves ad-hoc wrappers over Type operations.
            NOTE that not all cataloging APIs might be implemented on such types, only those which were of interest for such "mock" type facades. Feel free to add the missing pieces if they become needed.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.myAssemblyBinders">
            <summary>
            Binders map, concurrent, defer creation from startup because it's JIT-heavy.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.myMapAssemblyToToken">
            <summary>
            Pessimistically RW locked with <see cref="F:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.myLock" /> because it needs to update this map and the table in sync, to add the table index to this table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.myMapTypeToToken">
            <summary>
            Pessimistically RW locked with <see cref="F:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.myLock" /> because it needs to update this map and the table in sync, to add the table index to this table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.myTableAssemblies">
            <summary>
            Read lock-free, mutated under <see cref="F:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.myLock" /> writer lock.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.myTableTypes">
            <summary>
            Read lock-free, mutated under <see cref="F:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.myLock" /> writer lock.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.FromType(System.Type)">
            <summary>
              <para>Wraps an already-loaded <see cref="T:System.Type">runtime type</see> as a <see cref="T:JetBrains.Application.Catalogs.PartCatalogType" />.</para>
              <para>NOTE that not all cataloging APIs might be implemented on such types, only those which were of interest for such "mock" type facades. Feel free to add the missing pieces if they become needed.</para>
              <para>This operation is rather cheap, especially on subsequent calls.</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.FromType``1">
            <inheritdoc cref="M:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.FromType(System.Type)" />
        </member>
        <member name="M:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.GlobalGetType(System.Type)">
            <summary>
              <para>Wraps an already-loaded <see cref="T:System.Type">runtime type</see> as a <see cref="T:JetBrains.Application.Catalogs.PartCatalogType" />.</para>
              <para>NOTE that not all cataloging APIs might be implemented on such types, only those which were of interest for such "mock" type facades. Feel free to add the missing pieces if they become needed.</para>
              <para>This operation is rather cheap, especially on subsequent calls.</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetPartMembers(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Catalogs.RuntimeTypeAsPartCatalogType.JetBrains#Application#Catalogs#IPartCatalogStorage#GlobalGetAllPartMembers">
            <inheritdoc />
        </member>
        <member name="F:JetBrains.Application.Components.ComponentContainer.myDynamicContextForEndpoint">
            <summary>
            Immutable context for resolving in unknown (dynamic) context. Avoids memory traffic on GetComponent calls without context.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ComponentContainer.myUnknownContextForChained">
            <summary>
            Immutable context for resolving in unknown (dynamic) context. Avoids memory traffic on GetComponent calls without context.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.ComponentContainerEx.TryGetComponent``1(JetBrains.Application.Components.IComponentContainer)">
            <summary>
            Gets the component whose interface type is <typeparamref name="TInterface"/>.
            Returns <c>Null</c> if there is no such component, or there are multiple components
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.ComponentContainerEx.TryGetComponent(JetBrains.Application.Components.IComponentContainer,System.Type)">
            <summary>
            Gets the component whose interface type is <paramref name="service"/>.
            Returns <c>Null</c> if there is no such component, or there are multiple components
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.AsyncDescriptorBase.CreateInstance(System.Object[])">
            <summary>
            Create an instance of the value. Called only once, so no need to worry about concurrency
            </summary>
            <param name="dependencies">Values from dependencies</param>
        </member>
        <member name="M:JetBrains.Application.Components.AsyncDescriptorBase.DoGetDependencies">
            <summary>
            Can be called in parallel from multiple threads 
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.CorruptedDependenciesException.#ctor(System.String)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Components.CorruptedDependenciesException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Components.OnDemandDescriptor">
            <summary>
            Component descriptor for on-demand components with custom factoring.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.RuntimeMemberComponentDescriptor">
            <summary>
            A runtime <see cref="T:System.Reflection.MemberInfo" /> is given. Its parameters are bound and the member is invoked (a method or a property getter).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.RuntimeMemberComponentDescriptor.myInstance">
            <summary>
            If the member is an instance member, might specify the instance for calling the member on.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.RuntimeMemberComponentDescriptor.Member">
            <summary>
            The member which factors the component.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.RuntimeMemberComponentDescriptor.DoCreateInstance(JetBrains.Application.Components.MethodBindigns,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Components.SignatureResolution.CreateInstance``1(JetBrains.Application.Components.IComponentContainer)">
            <summary>
            Create an instance of arbitrary type <typeparamref name="T"/>, selecting best constructor and providing parameter values from container
            </summary>
            <typeparam name="T">Type to instantiate</typeparam>
            <param name="container">Container to get values for parameters from</param>
            <returns>New instance of type <typeparamref name="T"/></returns>
        </member>
        <member name="M:JetBrains.Application.Components.SignatureResolution.CreateInstance(JetBrains.Application.Components.IComponentContainer,System.Type)">
            <summary>
            Create an instance of arbitrary type <paramref name="type"/>, selecting best constructor and providing parameter values from container
            </summary>
            <param name="container">Container to get values for parameters from</param>
            <param name="type">Type to instantiate</param>
            <returns>New instance of type <paramref name="type"/></returns>
        </member>
        <member name="M:JetBrains.Application.Components.SignatureResolution.DynamicInvoke(JetBrains.Application.Components.IComponentContainer,System.Delegate)">
            <summary>
            Invoke a function using reflection and supplying parameters' values from container
            </summary>
            <param name="container">Container</param>
            <param name="function">Function</param>
            <returns>Return value of the function</returns>
        </member>
        <member name="T:JetBrains.Application.Components.SignatureResolution.Binding">
            <summary>
            Holds information about a method bound to a list of descriptor to supply as parameters
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.SignatureResolution.CreateInstance(JetBrains.Application.Components.SignatureResolution.Binding)">
            <summary>
            Creates an instance from the resolved binding. Method should be <see cref="T:System.Reflection.ConstructorInfo"/>.
            </summary>
            <param name="binding">Resolved binding</param>
            <returns>New instance</returns>
        </member>
        <member name="M:JetBrains.Application.Components.SignatureResolution.BindToConstructor(System.Type,JetBrains.Application.Components.IValueResolveContext)">
            <summary>
            Creates a binding to a constructor of the specified type using the specified resolver
            </summary>
            <param name="type">Type to create binding for</param>
            <param name="context">Context for parameter resolution</param>
            <returns>Resolved binding</returns>
        </member>
        <member name="M:JetBrains.Application.Components.SignatureResolution.BindToMethod(System.Type,System.String,JetBrains.Application.Components.IValueResolveContext)">
            <summary>
            Creates a binding to a method of the specified type using the specified resolver
            </summary>
            <param name="type">Type to create binding for</param>
            <param name="context">Context for parameter resolution</param>
            <param name="name">Name for diagnostics</param>
            <returns>Resolved binding</returns>
        </member>
        <member name="M:JetBrains.Application.Components.SignatureResolution.BindToMethod(System.Reflection.MethodBase[],JetBrains.Application.Components.IValueResolveContext,System.Object)">
            <summary>
            Finds method in candidates list which can be satisfied by resolver
            </summary>
            <param name="candidates">Candidates to select from</param>
            <param name="context">Resolution service, can find descriptor by type</param>
            <param name="origin">Name for diagnostics</param>
            <returns>Resolved binding</returns>
        </member>
        <member name="P:JetBrains.Application.Components.SingletonDescriptor`1.ValueResolveContext">
            <summary>
            Gets the cached value resolve context into the owning container on behalf of this component.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.MethodBindigns.EnsureInstanceForVoidMethods(System.Object@,System.Reflection.MethodInfo,JetBrains.Application.Components.IValueDescriptor)">
            <summary>
            Special handling for the case when the method is VOID and we cannot have an instance. The calling code still expects some object instance.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.IContainerStageInfo.ComponentsCount">
            <summary>
            Total components count including components which not presented in <see cref="P:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.IContainerInfo.StoredComponents"/>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.IContainerStageInfo.CompositionTime">
            <summary>
            The pure composition time excluding all gaps.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.IContainerStageInfo.CompositionTimeOnPrimaryThread">
            <summary>
            The pure composition time on primary thread excluding all gaps.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.IContainerStageInfo.TotalCtorInvocationTime">
            <summary>
            Sum of ctor own invocation times including components which not presented in <see cref="P:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.IContainerInfo.StoredComponents"/>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.IContainerInfo.StoredComponents">
            <summary>
            Component statistics. For composed container contain only components with CtorStep.OwnTime >= <see cref="F:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.CtorOwnTimeThreshold"/> or StrategyStep.TotalTime >= <see cref="F:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.TotalTimeThreshold"/>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.Diagnostics.ComponentContainersStatistics.IContainerInfo.TotalTime">
            <summary>
            The total period from the StartTime until the container is composed.
            As the composition is not continuous, could be much greater than pure composition time.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.FactoryComponentContainer">
            <summary>
            Can create instances of classes (or call lambdas with parameters) with the power of our <see cref="T:JetBrains.Application.Components.IComponentContainer">Component Container</see> — by injecting required dependencies into constructor or method parameters.
            </summary>
            <remarks>Call static methods against an <see cref="T:JetBrains.Application.Components.IComponentContainer" />, or use instance methods on this class if you have a wrapper already.</remarks>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.#ctor(JetBrains.Application.Components.IComponentContainer)">
            <summary>
            Can create instances of classes (or call lambdas with parameters) with the power of our <see cref="T:JetBrains.Application.Components.IComponentContainer">Component Container</see> — by injecting required dependencies into constructor or method parameters.
            </summary>
            <remarks>Call static methods against an <see cref="T:JetBrains.Application.Components.IComponentContainer" />, or use instance methods on this class if you have a wrapper already.</remarks>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance``1(JetBrains.Lifetimes.Lifetime,JetBrains.Application.Components.IComponentContainer,System.Object[])">
            <summary>
            Creates an object instance of type <typeparamref name="TInstance" />, injecting it with custom <paramref name="args">arguments</paramref> and components from the <paramref name="parent">parent container</paramref>.
            </summary>
            <typeparam name="TInstance">Type of the object to create.</typeparam>
            <param name="lifetime">Defines the lifetime for the object that will be created. The object gets it in the constructor.</param>
            <param name="parent">The parent component container to define the set of components that could be imported in the object constructor.</param>
            <param name="args">Additional custom actual parameters to be passed to the object constructor. These take precedence over parent container components. Note that currently there is no indication of unused parameters.</param>
            <returns>The new instance.</returns>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance``1(JetBrains.Lifetimes.Lifetime,JetBrains.Application.Parts.Instantiation,System.Object[])">
            <inheritdoc cref="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Parts.Instantiation,System.Object[])" />
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,System.Object[])">
            <inheritdoc cref="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Parts.Instantiation,System.Object[])" />
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Parts.Instantiation,System.Object[])">
            <inheritdoc cref="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Parts.Instantiation,System.Object[])" />
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Parts.Instantiation,System.Object[])">
            <summary>
            Creates an object instance of type <paramref name="objecttype" />, injecting it with custom <paramref name="args">arguments</paramref> and components from the <paramref name="parent">parent container</paramref>.
            </summary>
            <param name="lifetime">Defines the lifetime for the object that will be created. The object gets it in the constructor.</param>
            <param name="objecttype">Type of the object to create.</param>
            <param name="parent">The parent component container to define the set of components that could be imported in the object constructor.</param>
            <param name="instantiation">Instantiation value for object creation.</param>
            <param name="args">Additional custom actual parameters to be passed to the object constructor. These take precedence over parent container components. Note that currently there is no indication of unused parameters.</param>
            <returns>The new instance.</returns>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstanceAsync(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Components.IInitializationStrategy,JetBrains.Util.Threading.Tasks.TaskPriority,System.Object[])">
            <inheritdoc cref="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,System.Object[])" />
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstanceAsync(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Components.IInitializationStrategy,JetBrains.Util.Threading.Tasks.TaskPriority,JetBrains.Application.Parts.Instantiation,System.Object[])">
            <inheritdoc cref="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Parts.Instantiation,System.Object[])" />
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstanceAsync(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IInitializationStrategy,JetBrains.Util.Threading.Tasks.TaskPriority,JetBrains.Application.Parts.Instantiation,System.Object[])">
            <inheritdoc cref="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstance(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Parts.Instantiation,System.Object[])" />
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstanceWithoutContainer(JetBrains.Lifetimes.Lifetime,System.Type,System.Object[])">
            <summary>
            Creates an object instance of type <paramref name="objecttype" />, injecting it with custom <paramref name="args">arguments</paramref>, but does not chain this to the parent component container.
            </summary>
            <param name="lifetime">Defines the lifetime for the object that will be created. The object gets it in the constructor.</param>
            <param name="objecttype">Type of the object to create.</param>
            <param name="args">Additional custom actual parameters to be passed to the object constructor. These take precedence over parent container components. Note that currently there is no indication of unused parameters.</param>
            <returns>The new instance.</returns>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.InvokeLive(JetBrains.Lifetimes.Lifetime,JetBrains.Application.Components.IComponentContainer,System.Reflection.MemberInfo,System.Object,System.Object[],JetBrains.Application.Parts.Instantiation)">
            <summary>
            Invokes a method with a live result (it gets its own lifetime, based on the lifetime you pass in and lifetimes of any components it also imports). The imported stuff is safe to use as long as you're not exceeding your lifetime.
            </summary>
            <param name="lifetime">The limiting lifetime for all the stuff being executed.</param>
            <param name="parent">The parent component container which will resolve all method parameters except for the ones you pass manually in <paramref name="args" />.</param>
            <param name="method">The method to invoke, either as a method, or a property, or an instance constructor.</param>
            <param name="instance">The instance, for an instance method. <c>NULL</c> for a static method.</param>
            <param name="args">Custom actual parameters to be bound to the method. The order is not important, but the types must be unique.</param>
            <param name="instantiation">Instantiation flags for calling method</param>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.InvokeLive(JetBrains.Lifetimes.Lifetime,System.Reflection.MemberInfo,System.Object,System.Object[],JetBrains.Application.Parts.Instantiation)">
            <inheritdoc cref="M:JetBrains.Application.Components.FactoryComponentContainer.InvokeLive(JetBrains.Lifetimes.Lifetime,JetBrains.Application.Components.IComponentContainer,System.Reflection.MemberInfo,System.Object,System.Object[],JetBrains.Application.Parts.Instantiation)" />
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.InvokeLiveExpression(JetBrains.Lifetimes.Lifetime,JetBrains.Application.Components.IComponentContainer,System.Linq.Expressions.Expression{System.Action},System.Object[])">
            <summary>
            Invokes a method with a live result (it gets its own lifetime, based on the lifetime you pass in and lifetimes of any components it also imports). The imported stuff is safe to use as long as you're not exceeding your lifetime.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.InvokeLiveExpression(JetBrains.Lifetimes.Lifetime,System.Linq.Expressions.Expression{System.Action},System.Object[])">
            <inheritdoc cref="M:JetBrains.Application.Components.FactoryComponentContainer.InvokeLiveExpression(JetBrains.Lifetimes.Lifetime,JetBrains.Application.Components.IComponentContainer,System.Linq.Expressions.Expression{System.Action},System.Object[])" />
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.InvokeTransientExpression(JetBrains.Application.Components.IComponentContainer,System.Linq.Expressions.Expression{System.Action})">
            <summary>
            Invokes a method transiently (without any lifetime control). The method should not initiate any long-running activities, otherwise the entities passed into the method might get invalid.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.InvokeTransientExpression(JetBrains.Application.Components.IComponentContainer,System.Linq.Expressions.Expression{System.Action},System.Object[])">
            <summary>
            Invokes a method transiently (without any lifetime control). The method should not initiate any long-running activities, otherwise the entities passed into the method might get invalid.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.InvokeTransientMethod(JetBrains.Application.Components.IComponentContainer,System.Object,System.Reflection.MethodInfo,System.Object[])">
            <summary>
            Invokes a method transiently (without any lifetime control). The method should not initiate any long-running activities, otherwise the entities passed into the method might get invalid.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.FactoryComponentContainer.CreateInstanceCoreAsync(JetBrains.Lifetimes.Lifetime,System.Type,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Components.IInitializationStrategy,JetBrains.Util.Threading.Tasks.TaskPriority,JetBrains.Application.Parts.Instantiation,System.Object[])">
            <summary>
            Creates an object instance of type <paramref name="type" />, injecting it with custom <paramref name="args">arguments</paramref> and components from the <paramref name="parent">parent container</paramref>.
            </summary>
            <param name="lifetime">Defines the lifetime for the object that will be created. The object gets it in the constructor.</param>
            <param name="type">Type of the object to create.</param>
            <param name="parent">The parent component container to define the set of components that could be imported in the object constructor.</param>
            <param name="initializationStrategy">Initialization strategy for component composing.</param>
            <param name="taskPriority">Task priority for <see cref="M:JetBrains.Application.Components.IValueDescriptor.GetValueAsync(JetBrains.Lifetimes.Lifetime,JetBrains.Util.Threading.Tasks.TaskPriority)" />.</param>
            <param name="instantiation">Instantiation value for object creation.</param>
            <param name="args">Additional custom actual parameters to be passed to the object constructor. These take precedence over parent container components. Note that currently there is no indication of unused parameters.</param>
            <returns>The new instance.</returns>
        </member>
        <member name="T:JetBrains.Application.Components.IAutocreateWith`1">
            <summary>
            When listed as a base interface on a component, instructs the component container to create an instance of that component just after an instance of the component <typeparamref name="TMonitoredComponent" /> is created, either in the same container or in an upper-level container. Child containers are not monitored.
            </summary>
            <typeparam name="TMonitoredComponent">The component whose creation is monitored.</typeparam>
        </member>
        <member name="T:JetBrains.Application.Components.IComponentContainer">
            <summary>
            Interface for abstract component container
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.IComponentContainer.CreateResolveContext(JetBrains.Application.Components.ValueResolveRequester)">
            <summary>
            Creates value resolution context for requesting descriptor.
            </summary>
            <param name="requester">Requesting descriptor or a dynamic request for unbound lookups.</param>
            <returns>IValueResolveContext for instance lookups</returns>
        </member>
        <member name="T:JetBrains.Application.Components.IComponentContainerExtender">
            <summary>
            Extension interface to provide extra items into component container
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.IComponentContainerExtender.CreatedInstances">
            <summary>
            Components added to the container by the value resolver
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.IComponentContainerExtender.TryCreateValueResolver(JetBrains.Lifetimes.Lifetime,JetBrains.Application.Catalogs.IPartCatalogSet,JetBrains.Application.Components.IComponentContainer)">
            <summary>
            Creates value resolver that will be registered in the component container
            </summary>
            <param name="containerLifetime">Lifetime of the container for which value resolver is created</param>
            <param name="partCatalog">Part catalog filtered by zones</param>
            <param name="componentContainer">Component container being extended</param>
            <returns></returns>
        </member>
        <member name="T:JetBrains.Application.Components.IComponentWithAscIntPriorityAttribute">
            <summary>
            <inheritdoc cref="T:JetBrains.Application.Components.IComponentWithPriorityAttribute`2"/>.
            The components will be arranged in ascending order by int priority values.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IComponentWithDescIntPriorityAttribute">
            <summary>
            <inheritdoc cref="T:JetBrains.Application.Components.IComponentWithPriorityAttribute`2"/>.
            The components will be arranged in descending order by int priority values.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IComponentWithAscDoublePriorityAttribute">
            <summary>
            <inheritdoc cref="T:JetBrains.Application.Components.IComponentWithPriorityAttribute`2"/>.
            The components will be arranged in ascending order by double priority values.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IComponentWithDescDoublePriorityAttribute">
            <summary>
            <inheritdoc cref="T:JetBrains.Application.Components.IComponentWithPriorityAttribute`2"/>.
            The components will be arranged in descending order by double priority values.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IComponentWithPriorityAttribute`2">
            <summary>
            Interface for component attributes to get ordered collections
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IStartupActivity">
            <summary>
            Components that implement this interface will be auto created during startup
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IValueDescriptorNotify">
            <summary>
            Additional services on a value descriptor which tells when it's been created and allows to plug into the creation pipeline.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.IValueDescriptorNotify.IsValueCreationStarted">
            <summary>
            Gets if the value creation has already been initiated (and possibly completed). A companion for <see cref="!:AdviseValueCreated" /> to handle cases when it won't fire.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.IValueDescriptorNotify.IsValueReady">
            <summary>
            Gets if the value creation has completed successfully, and can be obtained with a no-cost sync call (or as an already-completed task). A companion for <see cref="!:AdviseValueCreated" /> to handle cases when it won't fire.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.IValueDescriptorNotify.TryAdviseValueCreated(JetBrains.Lifetimes.Lifetime,System.Action)">
            <summary>
            Advises the event of the value creation, which fires when the value has been factored (and is available for querying), but the creation pipeline task has not yet completed. Inserts <paramref name="FWhenCreatedAsync" /> into that pipeline.
            Does NOT fire if the value already exists (and will never fire in such a case).
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.INestedComponentContainerOwner">
            <summary>
            Hack to provide in nested container ability to get owner instance.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.INestedComponentContainerOwner.TryGetOwnerComponent``1">
            <summary>
            Owner of nested container. Available only after owner's initialization and doesn't force component creation.
            DO NOT STORE THIS VALUE, it will be destroyed before components from nested container.
            </summary>
            <typeparam name="T">Nested container owner type</typeparam>
        </member>
        <member name="M:JetBrains.Application.Components.INestedComponentContainerOwner.GetOwnerComponentOrThrow``1">
            <inheritdoc cref="M:JetBrains.Application.Components.INestedComponentContainerOwner.TryGetOwnerComponent``1"/>
        </member>
        <member name="T:JetBrains.Application.Components.AutocreateWithPartTypeRegistration">
            <summary>
            <see cref="T:JetBrains.Application.Components.IAutocreateWithRegistration" /> default impl.
            Does not register serving any requests by itself, but allows to learn the request upon which autocreation should be triggered.
            </summary>
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Components.AutocreateWithPartTypeRegistration.JetBrains#Application#Components#IValueRegistration#Accepts(System.Object)">
            <inheritdoc />
        </member>
        <member name="P:JetBrains.Application.Components.AutocreateWithPartTypeRegistration.JetBrains#Application#Components#IAutocreateWithRegistration#Request">
            <inheritdoc />
        </member>
        <member name="F:JetBrains.Application.Components.ComponentRegisterEntry.myDescriptors">
            <summary>
            null, IComponentDescriptor or <see cref="T:System.Collections.Generic.IList`1"/>
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IAutocreateWithRegistration">
            <summary>
            A registration yielded by a component which has an <see cref="T:JetBrains.Application.Components.IAutocreateWith`1" />.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.IAutocreateWithRegistration.Request">
            <summary>
            Gets the request upon serving which the component should be autocreated.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.TypeRegistration.CreateWithBases(System.Type)">
            <summary>
            Registers for all based types and interfaces of the given type (inclusively).
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.LazyValueResolver.TryExtractTypeUnderLazy(JetBrains.Application.Components.ResolveRequest)">
            <summary>
            If <paramref name="request"/> contains a lazy type, extracts the type it lazily creates (its generic parametrization type).
            In case it looks like lazy but is not lazy (e.g. from newer system libraries), issues an exception.
            If it's just clearly a non-Lazy type, yields NULL.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.LazyValueResolver.TryExtractTypeUnderLazy(System.Type)">
            <inheritdoc cref="M:JetBrains.Application.Components.LazyValueResolver.TryExtractTypeUnderLazy(JetBrains.Application.Components.ResolveRequest)"/>
        </member>
        <member name="T:JetBrains.Application.Components.OptionalValueResolver">
            <summary>
            Services <see cref="T:JetBrains.Application.Components.Optional`1" /> for the container.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.OptionalValueResolver.TryExtractTypeUnderOptional(JetBrains.Application.Components.ResolveRequest)">
            <summary>
            If <paramref name="request" /> contains a type wrapped in <see cref="T:JetBrains.Application.Components.Optional`1" />, extracts the type it holds (its generic parametrization type).
            Otherwise yields NULL.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.OptionalValueResolver.OptionalDescriptor.TargetDescriptor">
            <summary>
            The target descriptor which we're making optional. NULL means the optional value will also be NULL. If non-NULL, then it must provide some actual non-NULL value.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.OptionalValueResolver.OptionalDescriptor`1.myOptional">
            <summary>
            Lazy-created when first requested, by querying for the value of the descriptor, if such is present.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.ComponentStorage">
            <summary>
            Base class for component containers. Provides storage for components and initialization services
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ComponentStorage.myId">
            <summary>
            Container ID 
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ComponentStorage.myState">
            <summary>
            Current lifetime state for this container
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ComponentStorage.myDescriptors">
            <summary>
            Registered descriptors and their lifetimes 
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ComponentStorage.myComponentRegister">
            <summary>
            Composed components map
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.ComponentStorage.#ctor(JetBrains.Lifetimes.Lifetime,System.String,JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Components.IInitializationStrategy)">
            <summary>
            Creates new instance of <see cref="T:JetBrains.Application.Components.ComponentStorage"/>
            </summary>
            <param name="lifetime"></param>
            <param name="id">Identifier string for this container</param>
            <param name="container"></param>
            <param name="initializationStrategy"></param>
        </member>
        <member name="M:JetBrains.Application.Components.ComponentStorage.Compose(JetBrains.Application.Components.ContainerComposing)">
            <summary>
            Initializes the components in the container.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ComponentStorageState.Initial">
            <summary>
            The container has just been created and is not ready for creating the components yet. Call <see cref="M:JetBrains.Application.Components.ComponentContainer.Compose"/> to proceed.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ComponentStorageState.Initialized">
            <summary>
            The container is running. The first pack of components has been created.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ComponentStorageState.Disposing">
            <summary>
            <see cref="M:System.IDisposable.Dispose"/> has been called on the container, and it's currently in the process of tearing down the components.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ComponentStorageState.Disposed">
            <summary>
            The container has destroyed all of the components and is functional no more.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.IAsyncComposeManager.RegisterAsyncCompose(JetBrains.Lifetimes.Lifetime,System.String)">
            <summary>
            Register async compose (Sync/Async/LaterAsync stages) of component container, to cover these processes with tracking
            </summary>
            <param name="lifetime">Composing process lifetime</param>
            <param name="containerId">Container id</param>
        </member>
        <member name="M:JetBrains.Application.Components.IAsyncComposeManager.WhenNoComposingContainers(JetBrains.Lifetimes.Lifetime)">
            <summary>
            When there are no containers in the composing state
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.IAsyncComposeManager.SuspendLaterAsync(JetBrains.Lifetimes.Lifetime,System.String)">
            <summary>
            Request to suspend all uncompleted LaterAsync stages of all containers
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.IAsyncComposeManager.WhenLaterAsyncSuspenseCompleted(JetBrains.Lifetimes.Lifetime)">
            <summary>
            When are no LaterAsync suspend requesters
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.AsyncOnlyParallelLifecycleInitializationStrategy">
            <summary>
            Strategy for containers without ContainerSync components.
            Temporary solution to prevent <see cref="M:JetBrains.Threading.JetDispatcher.PumpMessagesOnce"/> call inside Compose of such containers.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IImmutableEnumerable`1">
            <summary>
            General interface to get enumerable of components.
            Smart-lazy, DeadlockSafe elements will be instantiated only during enumeration.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.ImmutableEnumerableObject">
            <summary>
            Helper to get <see cref="T:JetBrains.Application.Components.IImmutableEnumerable`1"/> and other components collections
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IOrderedByAttributeImmutableEnumerable`1">
            <summary>
            Ordered collection of components. Order should be described by special attribute of components.
            Attribute should implement <see cref="T:JetBrains.Application.Components.IComponentWithAscIntPriorityAttribute"/>,
            <see cref="T:JetBrains.Application.Components.IComponentWithDescIntPriorityAttribute"/>, <see cref="T:JetBrains.Application.Components.IComponentWithAscDoublePriorityAttribute"/>
            or <see cref="T:JetBrains.Application.Components.IComponentWithDescDoublePriorityAttribute"/>.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IOrderedImmutableEnumerable`1">
            <summary>
            Ordered collection of components. Order should be described by special interfaces of components.
            </summary>
            <typeparam name="T"><see cref="T:JetBrains.Application.Components.IComponentWithAscIntPriority"/>, <see cref="T:JetBrains.Application.Components.IComponentWithDescIntPriority"/>,
            <see cref="T:JetBrains.Application.Components.IComponentWithAscDoublePriority"/> or <see cref="T:JetBrains.Application.Components.IComponentWithDescDoublePriority"/></typeparam>
        </member>
        <member name="T:JetBrains.Application.Components.IParallelImmutableEnumerable`1">
            <summary>
            Similar to <see cref="T:JetBrains.Application.Components.IImmutableEnumerable`1"/> but with multithreaded (when possible)
            instantiation of elements during the first enumeration
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IParallelOrderedImmutableEnumerable`1">
            <summary>
            Similar to <see cref="T:JetBrains.Application.Components.IOrderedImmutableEnumerable`1"/> but with multithreaded (when possible)
            instantiation of elements during the first enumeration
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IReadyImmutableList`1">
            <summary>
            Interface to get list of already instantiated components
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.IImmutableListOfLazy`1">
            <summary>
            Actually this collection of <see cref="T:JetBrains.Application.Components.ILazy`1"/> has the same behavior as <see cref="T:JetBrains.Application.Components.IImmutableEnumerable`1"/>
            but with explicit laziness of items
            </summary>
            <typeparam name="T">Some <see cref="T:JetBrains.Application.Components.ILazy`1"/></typeparam>
        </member>
        <member name="T:JetBrains.Application.Components.IOrderedByAttributeImmutableListOfLazy`1">
            <summary>
            Actually this collection of <see cref="T:JetBrains.Application.Components.ILazy`1"/> has the same behavior as <see cref="T:JetBrains.Application.Components.IOrderedByAttributeImmutableEnumerable`1"/>
            but with explicit laziness of items
            </summary>
            <typeparam name="T">Some <see cref="T:JetBrains.Application.Components.ILazy`1"/></typeparam>
        </member>
        <member name="T:JetBrains.Application.Components.ILazyOrderedByAttributeImmutableListOfLazy`2">
            <summary>
            Actually this collection of <see cref="T:JetBrains.Application.Components.ILazy`1"/> has the same behavior as <see cref="!:IUnsafeOrderedImmutableList&lt;T&gt;"/>
            but with explicit laziness of items
            </summary>
            <typeparam name="TItem">Some <see cref="T:JetBrains.Application.Components.ILazy`1"/></typeparam>
            <typeparam name="TComponentAttribute">Component attribute to use for sorting</typeparam>
        </member>
        <member name="T:JetBrains.Application.Components.ISimpleLazy`1">
            <summary>
              <para>A wrapping interface for importing components without requesting their immediate instantiation.</para>
            </summary>
            <typeparam name="TComponent">The component type (or any of the underlying wrappers, like <see cref="T:JetBrains.Application.Components.Optional`1" />).</typeparam>
        </member>
        <member name="P:JetBrains.Application.Components.ISimpleLazy`1.Value">
            <summary>
              <para>Enforces the component instance be created and returned immediately.</para>
              <para>If the instance has already been created, then the ready instance is just returned.</para>
              <para>If not, the instance is created immediately on the same thread, if threading affinity allows, or creation is synchronously scheduled on the requested thread. The latter is very deadlock-prone. You should not call this for primary-thread-affined components on background threads.</para>
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.ILazy`1">
            <summary>
              <para>A wrapping interface for importing components without requesting their immediate instantiation.</para>
            </summary>
            <typeparam name="TComponent">The component type (or any of the underlying wrappers, like <see cref="T:JetBrains.Application.Components.Optional`1" />).</typeparam>
        </member>
        <member name="M:JetBrains.Application.Components.ILazy`1.TryGetValueSyncWithoutCreation">
            <summary>
              <para>Returns the component instance if the instance has already been created.</para>
              <para>If not, null will be returned.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.ILazy`1.IsValueCreated">
            <summary>
            Gets whether the component value has already been fully created and is safe to get from the synchronous function.
            <see cref="!:IsValueRequested" /> would also be <c>True</c>.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.ILazy`1.GetAwaiter">
            <summary>
            A service method to support <c>await</c> keyword right on the <see cref="T:JetBrains.Application.Components.ILazy`1" /> expressions, without explicitly calling for <see cref="M:JetBrains.Application.Components.ILazy`1.GetValueAsync(JetBrains.Lifetimes.Lifetime,JetBrains.Util.Threading.Tasks.TaskPriority)" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.ILazy`1.GetValueAsync(JetBrains.Lifetimes.Lifetime,JetBrains.Util.Threading.Tasks.TaskPriority)">
            <summary>
              <para>Starts creating the component instance asynchronously, if this is the first time the value has been called for. Returns the task to be awaited.</para>
              <para>On subsequent calls, returns the same task (either completed or not).</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.ILazy`1.GetValueAsync(JetBrains.Util.Threading.Tasks.TaskPriority)">
            <inheritdoc cref="M:JetBrains.Application.Components.ILazy`1.GetValueAsync(JetBrains.Lifetimes.Lifetime,JetBrains.Util.Threading.Tasks.TaskPriority)"/>>
        </member>
        <member name="T:JetBrains.Application.Components.LazyComponentObject">
            <summary>
            Creates an <see cref="T:JetBrains.Application.Components.ILazy`1" /> instance from an already existing object instance.
            This object is named and strucuted so that to intentionally hide from the code smart completion, because in most cases it should not be created this way.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.LazyComponentObject.Create``1(System.Lazy{``0})">
            <summary>
            Wraps a lazy object instance into the <see cref="T:JetBrains.Application.Components.ILazy`1" /> interface.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.LazyComponentObject.Create``1(System.Func{``0})">
            <summary>
            Wraps an object instance factory into the <see cref="T:JetBrains.Application.Components.ILazy`1" /> interface.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.LazyComponentObject.Create``1(``0)">
            <summary>
            Wraps an already existing object instance into the <see cref="T:JetBrains.Application.Components.ILazy`1" /> interface.
            </summary>
            <param name="instance"></param>
            <typeparam name="TComponent"></typeparam>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Application.Components.LazyComponentObject.Cast``2(JetBrains.Application.Components.ILazy{``0})">
            <summary>
            Provides <see cref="T:JetBrains.Application.Components.ILazy`1"/> by <see cref="T:JetBrains.Application.Components.ILazy`1"/>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.LazyComponentObject.SimpleCast``2(JetBrains.Application.Components.ISimpleLazy{``0})">
            <summary>
            Provides <see cref="T:JetBrains.Application.Components.ILazy`1"/> by <see cref="T:JetBrains.Application.Components.ILazy`1"/>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.LazyComponentObject.ToLazyComponent``1(``0)">
            <summary>
            Wraps an already existing object instance into the <see cref="T:JetBrains.Application.Components.ILazy`1" /> interface.
            </summary>
            <param name="instance"></param>
            <typeparam name="TComponent"></typeparam>
            <returns></returns>
        </member>
        <member name="T:JetBrains.Application.Components.Optional`1">
            <summary>
            Wraps an optional component instance in an explicit fashion.
            To get a component which is OK to be missing, request <see cref="T:JetBrains.Application.Components.Optional`1" /> specialized with your type.
            The wrapper value you get is always non-<c>Null</c>, and you can inspect if the contained component instance is present or not.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.ValueResolveRequester">
            <summary>
            Gives information on who's requesting for value resolve, and in what context.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ValueResolveRequester.myRequestingComponent">
            <summary>
            If requesting on behalf of some component, stores its descriptor.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.ValueResolveRequester.IsComponent">
            <summary>
            Gets whether the request is placed on behalf of a component descriptor. <see cref="M:JetBrains.Application.Components.ValueResolveRequester.GetRequestingComponent" /> is available if so.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.ValueResolveRequester.IsDynamic">
            <summary>
            Gets whether the request is dynamic, i.e. there's no specific component known on behalf of which the request is made.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.ValueResolveRequester.Originator">
            <summary>
            Gets if it's known on behalf of which entity the request is made.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Components.ValueResolveRequester.Route">
            <summary>
            Gets the route the request has traveled.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Components.ValueResolveRequester.GetRequestingComponent">
            <summary>
            Gets the originator if <see cref="P:JetBrains.Application.Components.ValueResolveRequester.Originator" /> is <see cref="F:JetBrains.Application.Components.ValueResolveRequester.RequestOriginator.Component" />. Throws otherwise.
            </summary>
            <returns></returns>
        </member>
        <member name="T:JetBrains.Application.Components.ValueResolveRequester.RequestOriginator">
            <summary>
            Gets if it's known on behalf of which entity the request is made.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ValueResolveRequester.RequestOriginator.Unidentified">
            <summary>
            Dunno what this means.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ValueResolveRequester.RequestOriginator.Component">
            <summary>
            Request is made on behalf of a component. Within a component conatiner, this will result in a dependency tracked.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ValueResolveRequester.RequestOriginator.Dynamic">
            <summary>
            Request is made in context of no component.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Components.ValueResolveRequester.RequestRoute">
            <summary>
            Gets the route the request has traveled.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ValueResolveRequester.RequestRoute.Endpoint">
            <summary>
            This is the outermost resolver entity to serve the request — closest to the requester, hence endpoint. All the final wrappings should be done on this stage.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Components.ValueResolveRequester.RequestRoute.Chained">
            <summary>
            The request has been delegated to an inner resolver, don't do endpoint wrappings.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Extensibility.AppDomainPartCatalogAssembliesResolver">
            <summary>
            In a scenario when a product assembly is loaded as a dependency of a plugin assembly we need to specify the product assembly location explicitly (as it cannot be resolved in the plugin folder).
            </summary>
        </member>
        <member name="T:JetBrains.Application.Extensibility.CatalogComponentSource">
            <summary>
            Reads the part catalog in search of components, filters them by the filter and selector, and creates descriptors for use with the container.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Extensibility.CatalogComponentSource.GetDescriptors(JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Catalogs.IPartCatalogSet,JetBrains.Application.Catalogs.Filtering.IPartSelector,System.Collections.Generic.IEnumerable{JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter},System.Type,System.Func{JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Catalogs.PartCatalogType,System.Type,JetBrains.Application.Parts.Instantiation,JetBrains.Application.Extensibility.PartCatalogTypeComponentDescriptor},System.Func{JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Catalogs.PartCatalogTypeMember,System.Type,JetBrains.Application.Parts.Instantiation,JetBrains.Application.Extensibility.PartCatalogTypeMemberComponentDescriptor})">
            <inheritdoc cref="T:JetBrains.Application.Extensibility.CatalogComponentSource" />
        </member>
        <member name="M:JetBrains.Application.Extensibility.CatalogComponentSource.GetDescriptors(JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Catalogs.PartCatalog,JetBrains.Application.Catalogs.Filtering.IPartSelector,System.Type,System.Func{JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Catalogs.PartCatalogType,System.Type,JetBrains.Application.Parts.Instantiation,JetBrains.Application.Extensibility.PartCatalogTypeComponentDescriptor},System.Func{JetBrains.Application.Components.IComponentContainer,JetBrains.Application.Catalogs.PartCatalogTypeMember,System.Type,JetBrains.Application.Parts.Instantiation,JetBrains.Application.Extensibility.PartCatalogTypeMemberComponentDescriptor})">
            <inheritdoc cref="T:JetBrains.Application.Extensibility.CatalogComponentSource" />
        </member>
        <member name="M:JetBrains.Application.Extensibility.IComponentWithAdditionalInitOnPrimaryThread.InitOnPrimaryThread">
            <summary>
            Additional step of initialization on PrimaryThread.
            Component will be available in container only after execution of this method.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Extensibility.IComponentWithAdditionalInitOnAnyThread.InitOnAnyThread">
            <summary>
            Additional step of initialization on AnyThread.
            Component will be available in container only after execution of this method.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Extensibility.FeaturePartsExtensions.FilterFactoryPattern``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})">
            <summary>
            Uses factory pattern for applicability check. (instantiate part is not null means applicability)
            Doesn't instantiate parts for overridden components.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Extensibility.InterruptableActivationAttribute">
            <summary>
            Component's lifetime can be terminated during activation
            </summary>
        </member>
        <member name="T:JetBrains.Application.Extensibility.Reflection.CodeDomCatalogEx">
            <summary>
            Expands <see cref="T:JetBrains.Util.Reflection.CodeDomEx" /> with catalogs-specific stuff.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Extensibility.TypeView`1.System#Collections#Generic#IReadOnlyCollection{System#Type}#Count">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Extensibility.TypeView`1.System#Collections#IEnumerable#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Extensibility.TypeView`1.System#Collections#Generic#IEnumerable{System#Type}#GetEnumerator">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Jet.AssemblyBinderJetMetadataExtensions.BindToJetMetadataReader(JetBrains.Application.Bindings.IAssemblyMasterBinder,JetBrains.Lifetimes.Lifetime,JetBrains.Util.OnError,JetBrains.Util.OnError)">
            <summary>
            Opens a session for binding to assemblies with Jet Metadata Reader.
            Under the hood, maintains a <see cref="T:JetBrains.Metadata.Reader.API.MetadataLoader" /> for the session, and attaches all opened metadata access to it.
            </summary>
            <param name="assemblyMasterBinder"></param>
            <param name="lifetime"></param>
            <param name="onerrorBinderErrors"></param>
            <param name="onerrorExpectedBinderFailures"></param>
            <returns></returns>
        </member>
        <member name="T:JetBrains.Application.Metadata.Jet.JetMetadataReaderBinderSession">
            <inheritdoc cref="M:JetBrains.Application.Metadata.Jet.AssemblyBinderJetMetadataExtensions.BindToJetMetadataReader(JetBrains.Application.Bindings.IAssemblyMasterBinder,JetBrains.Lifetimes.Lifetime,JetBrains.Util.OnError,JetBrains.Util.OnError)" />
        </member>
        <member name="F:JetBrains.Application.Metadata.Jet.JetMetadataReaderBinderSession.Binder">
            <summary>
            The binder from whom the session were created, governs resolving assemblies from names.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Metadata.Jet.JetMetadataReaderBinderSession.MetadataLoader">
            <summary>
            The metadata loader which loads the assemblies (you must respect its threading limitations). For loading and resolving references, uses <see cref="F:JetBrains.Application.Metadata.Jet.JetMetadataReaderBinderSession.Binder" />'s skills.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Jet.JetMetadataReaderBinderSession.BindAssembly(JetBrains.Metadata.Utils.AssemblyNameInfo,JetBrains.Metadata.Reader.API.IMetadataAssembly,System.Boolean)">
            <summary>
              <para>Binds an assembly to its metadata access.</para>
              <para>Basically, just uses the pre-configured <see cref="F:JetBrains.Application.Metadata.Jet.JetMetadataReaderBinderSession.MetadataLoader" />, who already knows how to resolve into the <see cref="F:JetBrains.Application.Metadata.Jet.JetMetadataReaderBinderSession.Binder" />, to load by name.</para>
              <para>Threading limitations of the <see cref="F:JetBrains.Application.Metadata.Jet.JetMetadataReaderBinderSession.MetadataLoader" /> and the <see cref="T:JetBrains.Metadata.Reader.API.IMetadataAssembly" /> apply.</para>
            </summary>
            <param name="assembly"></param>
            <param name="originator"></param>
            <param name="isTryLookingForWellKnownTypesInThisAssembly">Metadata has references to well-known types (see primitive types in <see cref="T:JetBrains.Metadata.Reader.API.ElementType" />) by just their type code and no assembly specification, so <see cref="F:JetBrains.Application.Metadata.Jet.JetMetadataReaderBinderSession.MetadataLoader" /> serves as the resolver for such types. Initially, it caches them all as Unresolved, but then it looks into any assembly you load into it if it has these types inside, and if by chance you load the system assembly before you first need such a type, then they are resolved okay, otherwise they are Unresolved. Whoa. Set this to True when loading a system assembly.</param>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.AssemblyBinderRoslynExtensions.BindToRoslynMetadataReader(JetBrains.Application.Bindings.IAssemblyMasterBinder,JetBrains.Lifetimes.Lifetime,System.Collections.Generic.IEqualityComparer{JetBrains.Metadata.Utils.AssemblyNameInfo},JetBrains.Util.ILogger)">
            <summary>
            Opens a session for binding to assemblies.
            The bound readers are lifetimed, and since they need to resolve to other readers and reuse them, some sorta session is needed to keep the cache and track their common lifetime.
            </summary>
            <param name="assemblyMasterBinder"></param>
            <param name="lifetime"></param>
            <param name="maybeAssemblyNameComparerForCaching">When called for the same assembly multiple times, we want to know it's the same assembly before opening a new <see cref="T:System.Reflection.Metadata.MetadataReader" /> with proably a new copy in memory. Note that <see cref="T:JetBrains.Application.Bindings.IAssemblyMasterBinder" /> _might_ think it's the same, but how would we know, the stream would be new every time.</param>
            <param name="logger"></param>
            <returns></returns>
        </member>
        <member name="T:JetBrains.Application.Metadata.Roslyn.FilteringResult`1">
            <summary>
            A result monad with one more option: the method takes a filter, and the filter has prevented us from completing the operation.
            This is a special non-failure condition which we need to tell apart from a failed result, and also to avoid extra allocations of exceptions and stack traces on this path.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.FilteringResult`1.IsPassingFilter">
            <summary>
            Has passed the filter, so the underlying Result monad is available (with <see cref="M:JetBrains.Application.Metadata.Roslyn.FilteringResult`1.UnwrapResult" />), as either successful value or an error.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.FilteringResult`1.IsSuccessful">
            <summary>
            Has a successful value, i.e. is passing the filter, and the underlying Result monad is not an error.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession">
            <inheritdoc cref="M:JetBrains.Application.Metadata.Roslyn.AssemblyBinderRoslynExtensions.BindToRoslynMetadataReader(JetBrains.Application.Bindings.IAssemblyMasterBinder,JetBrains.Lifetimes.Lifetime,System.Collections.Generic.IEqualityComparer{JetBrains.Metadata.Utils.AssemblyNameInfo},JetBrains.Util.ILogger)" />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession.#ctor(JetBrains.Lifetimes.Lifetime,JetBrains.Application.Bindings.IAssemblyMasterBinder,System.Collections.Generic.IEqualityComparer{JetBrains.Metadata.Utils.AssemblyNameInfo},JetBrains.Util.ILogger)">
            <inheritdoc cref="M:JetBrains.Application.Metadata.Roslyn.AssemblyBinderRoslynExtensions.BindToRoslynMetadataReader(JetBrains.Application.Bindings.IAssemblyMasterBinder,JetBrains.Lifetimes.Lifetime,System.Collections.Generic.IEqualityComparer{JetBrains.Metadata.Utils.AssemblyNameInfo},JetBrains.Util.ILogger)" />
        </member>
        <member name="F:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession.myCacheByDigest">
            <summary>
            Second-level cache. If assemblies whose names are different (by what <see cref="!:maybeAssemblyNameComparerForCaching" /> says) resolve into the same stream, and it's an <see cref="T:JetBrains.Util.dataStructures.ImmutableByteStream" /> which knows its digest, then we'll share them.
            TODO: see if it's slow to calc digest for e.g. assemblies from compressed entries.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession.myCacheByDiskPath">
            <summary>
            Second-level cache. If assemblies whose names are different (by what <see cref="!:maybeAssemblyNameComparerForCaching" /> says) resolve into the same disk file, we'll share the <see cref="T:System.Reflection.Metadata.MetadataReader" />.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession.myCacheByName">
            <summary>
            First-level cache by name. Only works if names match (in terms of <see cref="!:maybeAssemblyNameComparerForCaching" />), regardless of what <see cref="T:JetBrains.Application.Bindings.IAssemblyMasterBinder" /> has.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession.Cache">
            <summary>
            Cache for arbitrary stuff.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession.TryGetLoadedAssembly(JetBrains.Metadata.Utils.AssemblyNameInfo)">
            <summary>
            Does not load the assembly anew, only if it has already been resolved in this session.
            Beware that in a parallel environment it's not very deterministic, whether someone has already loaded the assembly or not.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.FindTopLevelTypeDefInAssembly(System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte},System.Reflection.Metadata.MetadataReader,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.PassFilters,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession,System.Int32)">
            <summary>
            </summary>
            <param name="ns"></param>
            <param name="name"></param>
            <param name="metareader"></param>
            <param name="passfilterForForwardedTypes">The filter ONLY applies when we follow type forwards. It is assumed that the input names have already been checked by the caller (caller typically does this even before dispatching where to look for those names).</param>
            <param name="bindsessionForForwardedTypes">If a type forward into another assembly is encountered, used for loading the assembly.</param>
            <param name="nesting"></param>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.ResolveTypeDefByParsedSerializedName(JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName,System.Reflection.Metadata.MetadataReader,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.PassFilters)">
            <summary>
            Only supports simple names (representing typedefs).
            Supports both top-level and nested types.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.ResolveTypeDefBySerializedName(System.String,System.Reflection.Metadata.MetadataReader,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession)">
            <summary>
            Only supports simple names (representing typedefs).
            Supports both top-level and nested types.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.TryGetBaseTypeDefinition(JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.TypeDefFromAssembly,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.PassFilters,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession)">
            <summary>
            Tries to get the typedef of the base type.
            The monad states here:
            * Filtered out.
            * Failed with an error.
            * No value because there is no base type.
            * A valid base type.
            </summary>
            <param name="type"></param>
            <param name="passfilter"></param>
            <param name="bindsession"></param>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.TryGetOutermostTypeDefFromTypeSpec(System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.MetadataReader,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.PassFilters,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession)">
            <summary>
            Lightweight decoding by only reading typedefs/typerefs, tunneling thru any type construction, discarding any generic specializations, and not resolving any assemblies.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.HandleForDiag">
            <summary>
            Renders details about the handle and its origin when logging diagnostics.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.HandleForDiag.#ctor(System.Reflection.Metadata.EntityHandle,System.Reflection.Metadata.MetadataReader,System.Boolean)">
            <summary>
            Renders details about the handle and its origin when logging diagnostics.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.HandleForDiag.ToString">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.MetadataException">
            <summary>
            Error reading metadata.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.MetadataException.#ctor(System.String,System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.TypeDefFromAssembly.ToString">
            <inheritdoc />
        </member>
        <member name="F:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName._rankOrModifier">
            <summary>
            Positive value is array rank.
            Negative value is modifier encoded using constants defined in <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParserHelpers"/>.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName._nestedNameLength">
            <summary>
            To avoid the need of allocating a string for all declaring types (example: A+B+C+D+E+F+G),
            length of the name is stored and the fullName passed in ctor represents the full name of the nested type.
            So when the name is needed, a substring is being performed.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.AssemblyQualifiedName">
            <summary>
            The assembly-qualified name of the type; e.g., "System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
            </summary>
            <remarks>
            If <see cref="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.AssemblyName"/> returns null, simply returns <see cref="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.FullName"/>.
            </remarks>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.AssemblyName">
            <summary>
            Returns assembly name which contains this type, or null if this <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName"/> was not
            created from a fully-qualified name.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.DeclaringType">
            <summary>
            If this type is a nested type (see <see cref="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.IsNested"/>), gets
            the declaring type. If this type is not a nested type, throws.
            </summary>
            <remarks>
            For example, given "Namespace.Declaring+Nested", unwraps the outermost type and returns "Namespace.Declaring".
            </remarks>
            <exception cref="T:System.InvalidOperationException">The current type is not a nested type.</exception>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.FullName">
            <summary>
            The full name of this type, including namespace, but without the assembly name; e.g., "System.Int32".
            Nested types are represented with a '+'; e.g., "MyNamespace.MyType+NestedType".
            </summary>
            <remarks>
            <para>For constructed generic types, the type arguments will be listed using their fully qualified
            names. For example, given "List&lt;int&gt;", the <see cref="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.FullName"/> property will return
            "System.Collections.Generic.List`1[[System.Int32, mscorlib, ...]]".</para>
            <para>For open generic types, the convention is to use a backtick ("`") followed by
            the arity of the generic type. For example, given "Dictionary&lt;,&gt;", the <see cref="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.FullName"/>
            property will return "System.Collections.Generic.Dictionary`2". Given "Dictionary&lt;,&gt;.Enumerator",
            the <see cref="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.FullName"/> property will return "System.Collections.Generic.Dictionary`2+Enumerator".
            See ECMA-335, Sec. I.10.7.2 (Type names and arity encoding) for more information.</para>
            </remarks>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.IsArray">
            <summary>
            Returns true if this type represents any kind of array, regardless of the array's
            rank or its bounds.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.IsConstructedGenericType">
            <summary>
            Returns true if this type represents a constructed generic type (e.g., "List&lt;int&gt;").
            </summary>
            <remarks>
            Returns false for open generic types (e.g., "Dictionary&lt;,&gt;").
            </remarks>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.IsSimple">
            <summary>
            Returns true if this is a "plain" type; that is, not an array, not a pointer, not a reference, and
            not a constructed generic type. Examples of elemental types are "System.Int32",
            "System.Uri", and "YourNamespace.YourClass".
            </summary>
            <remarks>
            <para>This property returning true doesn't mean that the type is a primitive like string
            or int; it just means that there's no underlying type.</para>
            <para>This property will return true for generic type definitions (e.g., "Dictionary&lt;,&gt;").
            This is because determining whether a type truly is a generic type requires loading the type
            and performing a runtime check.</para>
            </remarks>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.IsByRef">
            <summary>
            Returns true if this is a managed pointer type (e.g., "ref int").
            Managed pointer types are sometimes called byref types (<seealso cref="P:System.Type.IsByRef"/>)
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.IsNested">
            <summary>
            Returns true if this is a nested type (e.g., "Namespace.Declaring+Nested").
            For nested types <seealso cref="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.DeclaringType"/> returns their declaring type.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.IsSZArray">
            <summary>
            Returns true if this type represents a single-dimensional, zero-indexed array (e.g., "int[]").
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.IsPointer">
            <summary>
            Returns true if this type represents an unmanaged pointer (e.g., "int*" or "void*").
            Unmanaged pointer types are often just called pointers (<seealso cref="P:System.Type.IsPointer"/>)
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.IsVariableBoundArrayType">
            <summary>
            Returns true if this type represents a variable-bound array; that is, an array of rank greater
            than 1 (e.g., "int[,]") or a single-dimensional array which isn't necessarily zero-indexed.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.Name">
            <summary>
            The name of this type, without the namespace and the assembly name; e.g., "Int32".
            Nested types are represented without a '+'; e.g., "MyNamespace.MyType+NestedType" is just "NestedType".
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.GetNodeCount">
            <summary>
            Represents the total number of <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName"/> instances that are used to describe
            this instance, including any generic arguments or underlying types.
            </summary>
            <remarks>
            <para>This value is computed every time this method gets called, it's not cached.</para>
            <para>There's not really a parallel concept to this in reflection. Think of it
            as the total number of <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName"/> instances that would be created if
            you were to totally deconstruct this instance and visit each intermediate <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName"/>
            that occurs as part of deconstruction.</para>
            <para>"int" and "Person" each have complexities of 1 because they're standalone types.</para>
            <para>"int[]" has a node count of 2 because to fully inspect it involves inspecting the
            array type itself, <em>plus</em> unwrapping the underlying type ("int") and inspecting that.</para>
            <para>
            "Dictionary&lt;string, List&lt;int[][]&gt;&gt;" has node count 8 because fully visiting it
            involves inspecting 8 <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName"/> instances total:
            <list type="bullet">
            <item>Dictionary&lt;string, List&lt;int[][]&gt;&gt; (the original type)</item>
            <item>Dictionary`2 (the generic type definition)</item>
            <item>string (a type argument of Dictionary)</item>
            <item>List&lt;int[][]&gt; (a type argument of Dictionary)</item>
            <item>List`1 (the generic type definition)</item>
            <item>int[][] (a type argument of List)</item>
            <item>int[] (the underlying type of int[][])</item>
            <item>int (the underlying type of int[])</item>
            </list>
            </para>
            </remarks>
            <exception cref="T:System.OverflowException">The total number of <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName"/> instances that are used to describe
            this instance exceed <see cref="F:System.Int32.MaxValue"/>.</exception>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.GetElementType">
            <summary>
            The RoslynParsedTypeName of the object encompassed or referred to by the current array, pointer, or reference type.
            </summary>
            <remarks>
            For example, given "int[][]", unwraps the outermost array and returns "int[]".
            </remarks>
            <exception cref="T:System.InvalidOperationException">The current type is not an array, pointer or reference.</exception>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.GetGenericTypeDefinition">
            <summary>
            Returns a RoslynParsedTypeName object that represents a generic type name definition from which the current generic type name can be constructed.
            </summary>
            <remarks>
            Given "Dictionary&lt;string, int&gt;", returns the generic type definition "Dictionary&lt;,&gt;".
            </remarks>
            <exception cref="T:System.InvalidOperationException">The current type is not a generic type.</exception>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.Parse(System.ReadOnlySpan{System.Char},JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParser.Options)">
            <summary>
            Parses a span of characters into a type name.
            </summary>
            <param name="typeName">A span containing the characters representing the type name to parse.</param>
            <param name="options">An object that describes optional <seealso cref="T:JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParser.Options"/> parameters to use.</param>
            <returns>Parsed type name.</returns>
            <exception cref="T:System.ArgumentException">Provided type name was invalid.</exception>
            <exception cref="T:System.InvalidOperationException">Parsing has exceeded the limit set by <seealso cref="P:JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParser.Options.MaxNodes"/>.</exception>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.TryParse(System.ReadOnlySpan{System.Char},JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName@,JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParser.Options)">
            <summary>
            Tries to parse a span of characters into a type name.
            </summary>
            <param name="typeName">A span containing the characters representing the type name to parse.</param>
            <param name="options">An object that describes optional <seealso cref="T:JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParser.Options"/> parameters to use.</param>
            <param name="result">Contains the result when parsing succeeds.</param>
            <returns>true if type name was converted successfully, otherwise, false.</returns>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.GetArrayRank">
            <summary>
            Gets the number of dimensions in an array.
            </summary>
            <returns>An integer that contains the number of dimensions in the current type.</returns>
            <exception cref="T:System.InvalidOperationException">The current type is not an array.</exception>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.GetGenericArguments">
            <summary>
            If this <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName"/> represents a constructed generic type, returns an array
            of all the generic arguments. Otherwise it returns an empty array.
            </summary>
            <remarks>
            <para>For example, given "Dictionary&lt;string, int&gt;", returns a 2-element array containing
            string and int.</para>
            </remarks>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.WithAssemblyName(JetBrains.Metadata.Utils.AssemblyNameInfo)">
            <summary>
            Creates a new <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> object that represents current simple name with provided assembly name.
            </summary>
            <param name="assemblyName">Assembly name.</param>
            <returns>Created simple name.</returns>
            <exception cref="T:System.InvalidOperationException">The current type name is not simple.</exception>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.MakeSZArrayTypeName">
            <summary>
            Creates a <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> object representing a one-dimensional array
            of the current type, with a lower bound of zero.
            </summary>
            <returns>
            A <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> object representing a one-dimensional array
            of the current type, with a lower bound of zero.
            </returns>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.MakeArrayTypeName(System.Int32)">
            <summary>
            Creates a <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> object representing an array of the current type,
            with the specified number of dimensions.
            </summary>
            <param name="rank">The number of dimensions for the array. This number must be more than zero and less than or equal to 32.</param>
            <returns>
            A <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> object representing an array of the current type,
            with the specified number of dimensions.
            </returns>
            <exception cref="T:System.ArgumentOutOfRangeException">rank is invalid. For example, 0 or negative.</exception>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.MakePointerTypeName">
            <summary>
            Creates a <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> object that represents a pointer to the current type.
            </summary>
            <returns>
            A <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> object that represents a pointer to the current type.
            </returns>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.MakeByRefTypeName">
            <summary>
            Creates a <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> object that represents a managed reference to the current type.
            </summary>
            <returns>
            A <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> object that represents a managed reference to the current type.
            </returns>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.MakeGenericTypeName(System.Collections.Immutable.ImmutableArray{JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName})">
            <summary>
            Creates a new constructed generic type name.
            </summary>
            <param name="typeArguments">An array of type names to be used as generic arguments of the current simple type name.</param>
            <returns>
            A <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName" /> representing the constructed type name formed by using the elements
            of <paramref name="typeArguments"/> for the generic arguments of the current simple type name.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current type name is not simple.</exception>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.ToString">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParser.TryParseAssemblyName(JetBrains.Metadata.Utils.AssemblyNameInfo@)">
            <returns>false means the input was invalid and parsing has failed. Empty input is valid and returns true.</returns>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParser.Options.MaxNodes">
            <summary>
            Limits the maximum value of <seealso cref="M:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName.GetNodeCount">node count</seealso> that parser can handle.
            </summary>
            <remarks>
            <para>
            Setting this to a large value can render <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynParsedTypeName"/> susceptible to Denial of Service
            attacks when parsing or handling malicious input.
            </para>
            <para>The default value is 20.</para>
            </remarks>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParserHelpers.GetFullTypeNameLength(System.ReadOnlySpan{System.Char},System.Boolean@)">
            <returns>Positive length or negative value for invalid name</returns>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.RoslynTypeNameParserHelpers.IsBeginningOfGenericArgs(System.ReadOnlySpan{System.Char}@,System.Boolean@)">
            <summary>
            Are there any captured generic args? We'll look for "[[" and "[" that is not followed by "]", "*" and ",".
            </summary>
        </member>
        <member name="T:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor">
            <summary>
            A signature type provider which ignores all type specification construction but pulls out the basic type definition or reference, i.e. gets the open generic type etc.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#IConstructedTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result}#GetArrayType(JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result,System.Reflection.Metadata.ArrayShape)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#IConstructedTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result}#GetByReferenceType(JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result,System#Reflection#Missing}#GetFunctionPointerType(System.Reflection.Metadata.MethodSignature{JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#IConstructedTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result}#GetGenericInstantiation(JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result,System.Collections.Immutable.ImmutableArray{JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result,System#Reflection#Missing}#GetGenericMethodParameter(System.Reflection.Missing,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result,System#Reflection#Missing}#GetGenericTypeParameter(System.Reflection.Missing,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result,System#Reflection#Missing}#GetModifiedType(JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result,JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result,System#Reflection#Missing}#GetPinnedType(JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#IConstructedTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result}#GetPointerType(JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISimpleTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result}#GetPrimitiveType(System.Reflection.Metadata.PrimitiveTypeCode)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISZArrayTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result}#GetSZArrayType(JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISimpleTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result}#GetTypeFromDefinition(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.TypeDefinitionHandle,System.Byte)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISimpleTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result}#GetTypeFromReference(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.TypeReferenceHandle,System.Byte)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Metadata#Roslyn#TypeDefOrRefExtractor#Result,System#Reflection#Missing}#GetTypeFromSpecification(System.Reflection.Metadata.MetadataReader,System.Reflection.Missing,System.Reflection.Metadata.TypeSpecificationHandle,System.Byte)">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result">
            <summary>
            A monad with the typedef.
            </summary>
            <param name="AssemblyReader">Context of the target type.</param>
            <param name="TypeDefHandle">If we know the TypeDef of the type. Only valid if non-NULL and <paramref name="IllegalOperation" /> is NULL.</param>
            <param name="TypeRefHandle">If we know the TypeRef of the type. The idea is that we do not want to pull type ref assembly resolve context into here (+ all the filters) since that would make the extractor a non-static instance, so leave resolve for the caller. Only valid if non-NULL and <paramref name="IllegalOperation" /> is NULL.</param>
            <param name="IllegalOperation">
            Non-NULL if there was some problem getting the type (not just omitting the generic specialization, of couse, but something which makes it unreliable / unusable).
            The idea here is that we only actually need the outermost open generic type def, and anything happening while reading its generic specification would be discarded, so track errors with the type and decide in the end.</param>
        </member>
        <member name="M:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result.#ctor(System.Reflection.Metadata.MetadataReader,System.Nullable{System.Reflection.Metadata.TypeDefinitionHandle},System.Nullable{System.Reflection.Metadata.TypeReferenceHandle},System.String)">
            <summary>
            A monad with the typedef.
            </summary>
            <param name="AssemblyReader">Context of the target type.</param>
            <param name="TypeDefHandle">If we know the TypeDef of the type. Only valid if non-NULL and <paramref name="IllegalOperation" /> is NULL.</param>
            <param name="TypeRefHandle">If we know the TypeRef of the type. The idea is that we do not want to pull type ref assembly resolve context into here (+ all the filters) since that would make the extractor a non-static instance, so leave resolve for the caller. Only valid if non-NULL and <paramref name="IllegalOperation" /> is NULL.</param>
            <param name="IllegalOperation">
            Non-NULL if there was some problem getting the type (not just omitting the generic specialization, of couse, but something which makes it unreliable / unusable).
            The idea here is that we only actually need the outermost open generic type def, and anything happening while reading its generic specification would be discarded, so track errors with the type and decide in the end.</param>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result.AssemblyReader">
            <summary>Context of the target type.</summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result.TypeDefHandle">
            <summary>If we know the TypeDef of the type. Only valid if non-NULL and <paramref name="IllegalOperation" /> is NULL.</summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result.TypeRefHandle">
            <summary>If we know the TypeRef of the type. The idea is that we do not want to pull type ref assembly resolve context into here (+ all the filters) since that would make the extractor a non-static instance, so leave resolve for the caller. Only valid if non-NULL and <paramref name="IllegalOperation" /> is NULL.</summary>
        </member>
        <member name="P:JetBrains.Application.Metadata.Roslyn.TypeDefOrRefExtractor.Result.IllegalOperation">
            <summary>
            Non-NULL if there was some problem getting the type (not just omitting the generic specialization, of couse, but something which makes it unreliable / unusable).
            The idea here is that we only actually need the outermost open generic type def, and anything happening while reading its generic specification would be discarded, so track errors with the type and decide in the end.</summary>
        </member>
        <member name="M:JetBrains.Application.Parts.ComponentAttribute.#ctor(JetBrains.Application.Parts.Instantiation)">
            <inheritdoc cref="T:JetBrains.Application.Parts.Instantiation" />
        </member>
        <member name="T:JetBrains.Application.Parts.ComponentContainerNestedInAttribute">
            <remarks>
            null means "parent container is obtained from context", see JetBrains.Application.DataContext.ApplicationDataConstants.ComponentContainerForFactoring
            </remarks>
        </member>
        <member name="M:JetBrains.Application.Parts.ComponentContainerNestedInAttribute.#ctor(System.Type)">
            <remarks>
            null means "parent container is obtained from context", see JetBrains.Application.DataContext.ApplicationDataConstants.ComponentContainerForFactoring
            </remarks>
        </member>
        <member name="M:JetBrains.Application.Parts.ComponentInstantiationAttribute.#ctor(JetBrains.Application.Parts.Instantiation)">
            <inheritdoc cref="P:JetBrains.Application.Parts.ComponentInstantiationAttribute.Instantiation" />
        </member>
        <member name="P:JetBrains.Application.Parts.ComponentProperties.Default">
            <summary>
              <para>The default properties for legacy components which expect adherence to the old behavior.</para>
              <para>Default values for all member enums must match this state, so it's a NULL value for the struct.</para>
            </summary>
        </member>
        <member name="P:JetBrains.Application.Parts.ComponentProperties.FreeAsyncAccessOnlyUnsafe">
            <summary>
            Can be accessed from any threads but only by async request
            To be assumed for components which do not provide their own properties.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Parts.ComponentProperties.FreeUnsafe">
            <summary>
            The less limited option (except deadlock safety).
            To be assumed for components which do not provide their own properties.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Parts.ComponentProperties.FreeSafe">
            <summary>
            The less limited option.
            To be assumed for components which do not provide their own properties.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Parts.ComponentProperties.FromComponentInstantiationAttribute`1">
            <summary>
              <para>Reads (and caches on the static class) the default instantiation for a <see cref="T:JetBrains.Application.Parts.ComponentAttribute" />-derived attribute from the attr <see cref="T:JetBrains.Application.Parts.ComponentInstantiationAttribute" /> placed on this <see cref="T:JetBrains.Application.Parts.ComponentAttribute" />-derived attribute class.</para>
              <para>Is very specific at that: no derived attributes, no defaults, no omissions, no reading from ctor. MUST be an explicit attr.</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Parts.ComponentProperties.ToString">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Parts.ConsideredDeadlockSafeAttribute">
            <summary>
            Marked constructor parameter type as deadlock-safe.
            Constructor parameters of this type are not analyzed by safety checks.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Parts.ConsideredDeadlockSafeAttribute.#ctor(System.Type)">
            <summary>
            Marked constructor parameter type as deadlock-safe.
            Constructor parameters of this type are not analyzed by safety checks.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Parts.DeadlockSafeForAttribute">
            <summary>
            Indicates that this class/interface and its inheritors are deadlock-safe for a specified component container.
            This means they can be safely injected into components created by that container.
            </summary>
            <remarks>
            We can mark types (typically interfaces) as deadlock safe for all containers (ComponentContainerType.All)
            This means that any container has an object of the given type, whereas inheritors will not necessarily be available in all containers
            (Marking type as deadlock safe for ComponentContainerType.Environment also means safety for all containers, but inheritors of this type must also be safe for environment)
            </remarks>
            <example>
            1. ISolution is deadlock safe for solution instance components
            (and therefore for solution components)
            2. Components created in Sync/Async stage of environment container composition are deadlock safe for shell components
            (and therefore for solution instance, solution components)
            3. IThreading (and thus IShellLocks) is deadlock safe for environment components (=> for shell/solution instance/solution components)
            4. IPartCatalogSet is deadlock safe for components from all containers, but ShellPartCatalogSet is safe for shell (and next) components
            </example>
        </member>
        <member name="T:JetBrains.Application.Parts.Instantiation">
            <summary>
            PLEASE, try to use <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe"/> (or <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadUnsafe"/>) for new components that are requested by other components,
            with <see cref="T:JetBrains.Application.Components.IStartupActivity"/> for components that should provide some features themselves (workers) and may be not referenced by others.
            The legacy default for old components without the specified <see cref="T:JetBrains.Application.Parts.Instantiation"/> is <see cref="F:JetBrains.Application.Parts.Instantiation.ContainerAsyncPrimaryThread"/>
            only because we need to check if they require primary thread or if they can be deferred.
            These values make sense for async strategies, while the default strategy will create all components at
            <see cref="M:JetBrains.Application.Components.ComponentContainer.Compose"/> time, but you can still provide correct instantiation value
            and prepare it to switch to async strategies (e.g. switch from manual container creation to injecting of <see cref="T:JetBrains.Application.Components.NestedContainer.NestedComponentContainer"/>).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe">
            <summary>
            Deadlock safe components (<see cref="F:JetBrains.Application.Parts.InstantiationRaw.AnyThreadDependenciesOnly"/>) that are created on demand only
            and doesn't have any deadlock unsafe dependencies in constructor.
            These components can be requested from any thread by <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponent``1(JetBrains.Application.Components.IComponentContainer)"/>,
            or injected into other <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe"/> components.
            </summary>
            <remarks>Component WILL be created on any thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadUnsafe">
            <summary>
            Components that are created on demand only.
            This is GOOD OPTION for component-service, but it's always BETTER to use <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe"/> when possible.
            </summary>
            <remarks>Component WILL be created on any thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.ContainerAsyncPrimaryThread">
            <summary>
            Components that MAY be instantiated asynchronously after <see cref="M:JetBrains.Application.Components.ComponentContainer.Compose"/> call to avoid
            long blocking of primary thread, while still MUST be created on primary thread at a specific stage
            (for Shell components - before building the SolutionInstance container; for Solution components - prior to transitioning
            to SolutionLoadTaskKinds.SolutionContainerComposed and subsequent tasks in ISolutionLoadTasksScheduler).
            If such restrictions is not necessary, opt for using <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadUnsafe"/> with <see cref="T:JetBrains.Application.Components.IStartupActivity"/> (preferable)
            or <see cref="F:JetBrains.Application.Parts.Instantiation.ContainerAsyncAnyThreadUnsafe"/> to not use the primary thread at all.
            </summary>
            <remarks>Component WILL be created on primary thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.ContainerAsyncAnyThreadUnsafe">
            <summary>
            Components that MAY be instantiated on any thread and asynchronously after <see cref="M:JetBrains.Application.Components.ComponentContainer.Compose"/>
            call to avoid using of primary thread, while still MUST be created at a specific stage
            (for Shell components - before building the SolutionInstance container; for Solution components - prior to transitioning
            to SolutionLoadTaskKinds.SolutionContainerComposed and subsequent tasks in ISolutionLoadTasksScheduler).
            If such restriction is not necessary, opt for using <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadUnsafe"/> with <see cref="T:JetBrains.Application.Components.IStartupActivity"/>.
            </summary>
            <remarks>Component WILL be created on any thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.ContainerAsyncAnyThreadSafe">
            <summary>
            Deadlock safe components (<see cref="F:JetBrains.Application.Parts.InstantiationRaw.AnyThreadDependenciesOnly"/>) that MAY be instantiated on any thread
            and asynchronously after <see cref="M:JetBrains.Application.Components.ComponentContainer.Compose"/> call to avoid using of primary thread,
            while still MUST be created at a specific stage (for Shell components - before building the SolutionInstance container;
            for Solution components - prior to transitioning to SolutionLoadTaskKinds.SolutionContainerComposed and subsequent tasks in ISolutionLoadTasksScheduler).
            If such restriction is not necessary, opt for using <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe"/> with <see cref="T:JetBrains.Application.Components.IStartupActivity"/>.
            These components can't have any deadlock unsafe dependencies in constructor and
            can be requested from any thread by <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponent``1(JetBrains.Application.Components.IComponentContainer)"/>,
            or injected into <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe"/> components.
            </summary>
            <remarks>Component WILL be created on any thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.DemandAsyncOnlyPrimaryThread">
            <summary>
            Components that are created on demand only.
            AsyncOnly components can't be accessed synchronously (ex. by <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponent``1(JetBrains.Application.Components.IComponentContainer)"/>), but can be dependent also on other AsyncOnly components.
            </summary>
            <remarks>Component WILL be created on primary thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.DemandAsyncOnlyAnyThreadUnsafe">
            <summary>
            Components that are created on demand only.
            AsyncOnly components can't be accessed synchronously (ex. by <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponent``1(JetBrains.Application.Components.IComponentContainer)"/>), but can be dependent also on other AsyncOnly components.
            </summary>
            <remarks>Component WILL be created on any thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.Service">
            <summary>
            Deadlock safe components (<see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe"/>)  with a limited list of allowed dependencies
            (<see cref="T:JetBrains.Lifetimes.Lifetime"/>, <see cref="T:JetBrains.Util.ILogger"/>, <see cref="T:JetBrains.Application.Components.IComponentContainer"/>, components wrapped by <see cref="T:JetBrains.Application.Components.ILazy"/>),
            which itself can be requested from another components only through <see cref="T:JetBrains.Application.Components.ILazy`1"/>
            This is the BEST OPTION for component-service.
            </summary>
            <remarks>Component WILL be created on any thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.LaterAsyncOnlyPrimaryThread">
            <summary>
            Components that MUST be created, but MAY be after SolutionLoadTaskKinds.SolutionContainerComposed.
            AsyncOnly components can't be accessed synchronously (ex. by <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponent``1(JetBrains.Application.Components.IComponentContainer)"/>), but can be dependent also on other AsyncOnly components.
            </summary>
            <remarks>Component WILL be created on primary thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.LaterAsyncAnyThreadUnsafe">
            <summary>
            Components that MUST be created, but MAY be after SolutionLoadTaskKinds.SolutionContainerComposed.
            This is GOOD OPTION for deadlock unsafe component-worker, if it is not needed at the stage of loading the solution,
            but it's always BETTER to use <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe"/> with <see cref="T:JetBrains.Application.Components.IStartupActivity"/> when possible.
            </summary>
            <remarks>Component WILL be created on any thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.LaterAsyncAnyThreadSafe">
            <summary>
            Deadlock safe components (<see cref="F:JetBrains.Application.Parts.InstantiationRaw.AnyThreadDependenciesOnly"/>) that MUST be created,
            but MAY be after SolutionLoadTaskKinds.SolutionContainerComposed.
            These components can't have any deadlock unsafe dependencies in constructor and
            can be requested from any thread by <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponent``1(JetBrains.Application.Components.IComponentContainer)"/>,
            or injected into <see cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe"/> components.
            This is the BEST OPTION for deadlock safe component-worker, if it is not needed at the stage of loading the solution.
            </summary>
            <remarks>Component WILL be created on any thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.Instantiation.LaterAsyncOnlyAnyThreadUnsafe">
            <summary>
            Components that MUST be created, but MAY be after SolutionLoadTaskKinds.SolutionContainerComposed.
            AsyncOnly components can't be accessed synchronously (ex. by <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponent``1(JetBrains.Application.Components.IComponentContainer)"/>), but can be dependent also on other AsyncOnly components.
            </summary>
            <remarks>Component WILL be created on any thread</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.Sync">
            <summary>
            Component MUST be created during Sync stage of container compose 
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.Async">
            <summary>
            Component SHOULD be created during Async stage of container compose, but MAY be created earlier if necessary  
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.LaterAsync">
            <summary>
            Component SHOULD be created after general stages of container compose (Sync/Async), but MAY be created earlier if necessary  
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.PrimaryThread">
            <summary>
            Component WILL be created on primary thread 
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.AnyThreadDependenciesOnly">
            <summary>
            These deadlock safe components can't have any deadlock unsafe dependencies in constructor and
            can be requested from any thread by <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponent``1(JetBrains.Application.Components.IComponentContainer)"/>,
            or injected into other deadlock safe components (<seealso cref="F:JetBrains.Application.Parts.Instantiation.DemandAnyThreadSafe"/>/<seealso cref="F:JetBrains.Application.Parts.Instantiation.ContainerAsyncAnyThreadSafe"/>).
            </summary>
            <remarks>MUST NOT depend on anyone other than AnyThreadDependenciesOnly components (or on Sync/Async from already composed chained container)</remarks>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.AsyncAccessOnly">
            <summary>
            Component MAY be injected only by Sync/Async/AsyncAccessOnly, or MAY requested by <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponentAsync``1(JetBrains.Application.Components.IComponentContainer,JetBrains.Lifetimes.Lifetime,JetBrains.Util.Threading.Tasks.TaskPriority)"/>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.SuperStar">
            <summary>
            Hack to create the most popular components as soon as possible to avoid long waits for <see cref="M:JetBrains.Application.Components.ComponentContainerEx.GetComponent``1(JetBrains.Application.Components.IComponentContainer)"/>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.Service">
            <summary>
            Component with a limited list of allowed dependencies (<see cref="T:JetBrains.Lifetimes.Lifetime"/>, <see cref="T:JetBrains.Util.ILogger"/>, <see cref="T:JetBrains.Application.Components.IComponentContainer"/>,
            components wrapped by <see cref="T:JetBrains.Application.Components.ILazy"/>), which itself can be requested from another components only through <see cref="T:JetBrains.Application.Components.ILazy`1"/>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.MegaStar">
            <summary>
            One more hack special for ISettingsStore (we hope it's temporary), to mark it as DeadlockSafe without new container creation
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationRaw.Unspecified">
            <summary>
            Component without specified Instantiation flag (obsolete in plugin, forbidden in JetBrains code)
            </summary>
        </member>
        <member name="F:JetBrains.Application.Parts.InstantiationEx.ContainerSyncPrimaryThread">
            <summary>
            Components that are synchronously instantiated on primary thread at the moment of calling <see cref="M:JetBrains.Application.Components.ComponentContainer.Compose"/>.
            Only use this for components the creation of which cannot be postponed at all;
            the reason SHOULD be described in a comment near the attribute.
            </summary>
            <remarks>Component WILL be created on primary thread</remarks>
        </member>
        <member name="T:JetBrains.Application.Parts.NotUsedByComponentContainerAttribute">
            <summary>
            Indicates that the marked constructor is not used by the component container to create the component.
            Parameters of these constructors are not analyzed by safety checks.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.AssemblyBinderWithMvidValidation">
            <summary>
            If we know the expected &amp; supported MVID of the assembly, validates that the actually loaded assembly matches this MVID (in some of the cheaper scenarios).
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.AssemblyBinderWithMvidValidation.JetBrains#Application#Bindings#IAssemblyBinder#AssemblyName">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.AssemblyBinderWithMvidValidation.JetBrains#Application#Bindings#IAssemblyBinder#BindToDiskPath(JetBrains.Util.OnError)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.AssemblyBinderWithMvidValidation.JetBrains#Application#Bindings#IAssemblyBinder#BindToMetadataAssembly(JetBrains.Lifetimes.Lifetime,JetBrains.Util.OnError)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.AssemblyBinderWithMvidValidation.JetBrains#Application#Bindings#IAssemblyBinder#BindToRuntimeAssembly(JetBrains.Util.OnError)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.AssemblyBinderWithMvidValidation.JetBrains#Application#Bindings#IAssemblyBinder#BindToStream(JetBrains.Lifetimes.Lifetime,JetBrains.Util.OnError)">
            <inheritdoc />
        </member>
        <member name="F:JetBrains.Application.Table.CatalogTables.IsCatalogTablesMemoryAlwaysFixed">
            <summary>
            Originally, everytyhing was just native pointers, and it was assumed that they are fixed.
            Now as a lot of stuff, but not all, is tracked with spans, we still need to turn them into fixed pointers sometimes, violating the common span operations rules.
            To mark places like that, we have this condition.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.CatalogTables.RawDataReinterpretedAsChars">
            <summary>
            A copy of <see cref="F:JetBrains.Application.Table.CatalogTables.RawData" /> reinterpreted as a memory of chars, because we need memory of chars for <see cref="T:JetBrains.Util.dataStructures.Sources.StringSource" />s.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.#ctor(System.Memory{System.Byte})">
            <summary>
            Creates the catalog tables over a memory area.
            The lifetime of this accessor object is controlled by the lifetime of the memory objects.
            </summary>
            <param name="rawData">The memory area with raw catalog tables data.</param>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.#ctor(System.Memory{System.Byte},System.Memory{System.Char})">
            <summary>
            Creates the catalog tables over a memory area.
            The lifetime of this accessor object is controlled by the lifetime of the memory objects.
            </summary>
            <param name="rawData">The memory area with raw catalog tables data.</param>
            <param name="rawDataReinterpretedAsChars">Exactly the same area as <paramref name="rawData" />, but reinterpret-casted as chars, for the need of exposing lightweight strings in a span-of-chars compatible manner.</param>
        </member>
        <member name="P:JetBrains.Application.Table.CatalogTables.AllTables">
            <summary>
            Provides high-level access to listing the tables in this file.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.CatalogTables.RawData">
            <summary>
            The original pointer to the memory on which we are creating the catalog tables, as <see cref="T:System.Memory`1" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Open(JetBrains.Lifetimes.Lifetime,System.Void*,System.UInt32)">
            <summary>
            Opens the bytes as a catalog.
            </summary>
            <param name="lifetime">Controls the validness of the native memory at the pointer destination/</param>
            <param name="pCatalogTablesFile"></param>
            <param name="cbCatalogTablesFile"></param>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.OpenCopiedFromStream(System.IO.Stream)">
            <summary>
            Catalog tables operate on fixed memory, so the stream must be copied into a newly-allocated chunk each time you call this function.
            If you intend on doing this repeatedly, consider pre-copying yourself.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.CalculateHash(System.String)">
            <summary>
              <para>Calculates the stable hash for the string, in the format used in the Catalog Tables: MurmurHash3, 128bit-output, x86-cpu version.</para>
              <para>Yeilds to the common impl in the <see cref="T:JetBrains.Application.Table.Record.StringRecordHeader" />.</para>
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.GetAllPartTypesRange(JetBrains.Application.Table.CatalogTables)">
            <summary>
            Gets the range to the list of all Part types in this catalog.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.GetCatalogedAssembliesRange(JetBrains.Application.Table.CatalogTables)">
            <summary>
            Gets the range to the list of those assembly records that were primarily cataloged for part types (<see cref="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly" />).
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.GetSortedTraitNameHashes(JetBrains.Util.dataStructures.FrugalLocalList{JetBrains.Application.Catalogs.Filtering.PartCatalogTrait},JetBrains.Application.Table.CatalogTables.Helpers.QualifiedNameHashes*)">
            <summary>
            Gets a sorted native array of unique trait name hashes.
            </summary>
            <param name="traits">Names.</param>
            <param name="pTraitHashes">Native array, at least as long as the names list.</param>
            <returns>The actual number of hashes written, after deduplication.</returns>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.GetStringHash(JetBrains.Application.Table.CatalogTables,JetBrains.Application.Table.Record.Ref.StringRef)">
            <summary>
            Gets the hash for a string from the string table (without creating a string or calculating the hash).
            Does the RVA range check, so for running in a loop you might consider reading the hashes directly. Does not validate the record BOM/size though, just reads the hash.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.GetTraitBanksCount(JetBrains.Application.Table.CatalogTables)">
            <summary>
            Gets the number of trait banks in this catalog, based on the number of known trait names ( ceil(knowntraits / 0x40) ).
            Each bank holds bit presence flags for 64 traits in 64-bit values.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.GetTraitNamesInNamespace(JetBrains.Application.Table.CatalogTables,JetBrains.Util.Maths.OWORD)">
            <summary>
            <see cref="T:JetBrains.Application.Table.Record.TraitNameRecord" /> table is sorted first by namespace, then by local name, so we can look up a contiguous range of the same-namespace traits.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.MakeTraitMasks(JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations@,JetBrains.Application.Table.CatalogTables.Helpers.TraitMaskBanksAndOperations@,JetBrains.Application.Table.CatalogTables)">
            <summary>
            Makes per-bank bitmasks for looking up named traits in the current catalog.
            </summary>
            <param name="traitops">Names of the traits. Bits corresponding to these names will be set high in the masks.</param>
            <param name="traitmasks">Masks, if applicable.</param>
            <param name="tables"></param>
            <returns>Whether all traits were bitmapped. False means the filter results should be empty (passes none). The masks state is undefined in this case.
            Possible reasons are:
            • Some traits are not known to this catalog, and the process were aborted.
            </returns>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.TryGetBlob(JetBrains.Util.Maths.OWORD,JetBrains.Application.Table.CatalogTables,JetBrains.Util.OnError)">
            <summary>
            Gets a BLOB from the BLOB table, if present.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.CatalogTables.Helpers.GetRangeFromBlob``1(System.String,JetBrains.Application.Table.CatalogTables)">
            <summary>
            Reads the list from the special BLOB.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.CatalogTables.Helpers.TraitMask">
            <summary>
              <para>This struct holds trait masks for a single operation in a single trait bank.</para>
              <para>The total set of operations corresponds to the operations listed in <see cref="T:JetBrains.Application.Catalogs.Filtering.PartCatalogTraitOperations" />. Operations' results are ANDed.</para>
              <para>All operations are normalized into the same <c>!(x ∧ AND ⊻ XOR)</c> form, where negation is boolean, and others are bitwise. This way we can store only the AND/XOR args and execute them in a loop in a uniform manner for any operation kind.</para>
              <para>Here's how AND/XOR masks are assigned for operations of different kinds. Here <c>x</c> is the trait mask bank being tested, and <c>A</c>, <c>B</c>, <c>C</c> are bitmasks for traits of this operation (each with only one bit set).</para>
              <para>HasAtLeast operation: <c>x ∧ (A∨B∨C) == A∨B∨C</c>. Thus <c>AND := A∨B∨C</c> and <c>XOR := A∨B∨C</c>.</para>
              <para>HasAtMost operation: <c>x ∧ ¬(A∨B∨C) ∧ Ns == 0</c> (<c>Ns</c> is a mask for all the traits in the same namespace as <c>A</c>, <c>B</c>, <c>C</c>). Thus <c>AND := ¬(A∨B∨C) ∧ Ns</c> and <c>XOR := 0</c></para>
              <para>HasAnyOf operation: <c>x ∧ (A∨B∨C)</c>. Thus <c>AND := A∨B∨C</c> and <c>XOR := ¬0</c></para>
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.CatalogTables.Helpers.TraitMaskBanksAndOperations">
            <summary>
            Precalculated masks for execution of trait-filtering functions.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.CatalogTables.Helpers.TraitMaskBanksAndOperations.OperationsAndBanks">
            <summary>
            Masks for each bank for each operation, total <see cref="F:JetBrains.Application.Table.CatalogTables.Helpers.TraitMaskBanksAndOperations.TraitBanksCount" /> * <see cref="F:JetBrains.Application.Table.CatalogTables.Helpers.TraitMaskBanksAndOperations.OperationsCount" />.
            First all banks for the first operation (each applied to the corresponding trait bitmask bank of the item in the table). Then for the second. And so on.
            Packing them into the single array provides for better locality than with subarrays.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.CatalogTables.Helpers.TraitMaskBanksAndOperations.OperationsCount">
            <summary>
            Number of independent operations in CNF, see <see cref="T:JetBrains.Application.Table.CatalogTables.Helpers.TraitMask" /> for operation description. Needed to iterate <see cref="F:JetBrains.Application.Table.CatalogTables.Helpers.TraitMaskBanksAndOperations.OperationsAndBanks" />.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.CatalogTables.Helpers.TraitMaskBanksAndOperations.TraitBanksCount">
            <summary>
            Caches the number of trait banks in the CatalogTables. Needed to iterate <see cref="F:JetBrains.Application.Table.CatalogTables.Helpers.TraitMaskBanksAndOperations.OperationsAndBanks" />.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.Common.CalculateAttributeTypeTraitsForPartCatalogTables">
            <summary>
            Traits for all assignable-to types of attributes on some type.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.Common.CalculateAttributeTypeTraitsForPartCatalogTables.TraitNamespace">
            <summary>
            Namespace for all attribute type based traits.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.Common.CalculateAttributeTypeTraitsForPartCatalogTables.GetAttributeTypeTraitName(System.Type)">
            <summary>
            Std name for attr type based traits.
            Only for immediate type, so you must manually traverse its base types if you need to make those also available as traits.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.Common.CalculateAttributeTypeTraitsForPartCatalogTables.GetAttributeTypeTraitName(System.String)">
            <summary>
            Std name for attr type based traits.
            Only for immediate type, so you must manually traverse its base types if you need to make those also available as traits.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.Common.ICalculateTraitsForPartCatalogTables">
            <summary>
            Calculates traits for parts in the part catalog, to be written into an index, and to provide for fast filtering by commonly-used facets at runtime.
            If you're asked for <see cref="T:JetBrains.Application.Table.Emit.Common.ICalculateTraitsForPartCatalogTables" /> collection, then:
            (1) If in a Shell-dependent assembly, use the standard set as given in the <c>PartCatalogs</c> class. This would index all we know, incl attrs, zones, etc.
            (2) If you can't reference Shell, then you shan't be creating general-purpose catalogs here. For special-needs catalogs, pick the set of available/applicable/required trait calculators individually.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.Common.ICalculateTraitsForPartCatalogTables.CalculateTraitsAsync(JetBrains.Lifetimes.OuterLifetime,JetBrains.Application.Catalogs.PartCatalog,JetBrains.Application.Threading.Tasks.ITaskHost,JetBrains.Util.ILogger)">
            <summary>
            Does tha calc.
            </summary>
            <param name="lifetime"></param>
            <param name="catalogEmitTimeEmulation">A limited implementation of part catalogs view over the incomplete emitted catalog, so that trait writer could iterate over types and members and related stuff like zoning.</param>
            <param name="tasker"></param>
            <param name="logger"></param>
            <returns>Write your new traits here.</returns>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.Common.PartHelpers.PartCatalogHelpersException">
            <summary>
            Error processing types for the part catalog.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.Common.PartHelpers.PartCatalogHelpersException.#ctor(System.String,System.Exception)">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption">
            <summary>
            Groups <see cref="T:JetBrains.Metadata.Reader.API.CurrentRuntimeAssemblyResolvers" /> parameters of <see cref="T:JetBrains.Metadata.Reader.API.GacResolvePreferences" /> and <see cref="T:JetBrains.Metadata.Reader.API.DotNetFrameworkCurrentRuntimeAssemblyResolver.RuntimeAssemblySources" />, as well as an option to not have any <see cref="T:JetBrains.Metadata.Reader.API.CurrentRuntimeAssemblyResolvers" /> included at all (means resolving to controllable sources only).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption.None">
            <summary>
            Do NOT resolve assemblies to any uncontrolled sources, i.e. GAC or Visual Studio. Only assemblies explicitly supplied as inputs should be used.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption.Gac">
            <summary>
            Also resolve to GAC (allow looking up assemblies of newer versions when asking for older versions).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption.GacAndVs">
            <summary>
            Also resolve to GAC, also resolve to any Visual Studio installations, classic or lightweight (allow looking up assemblies of newer versions when asking for older versions).
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables">
            <summary>
            PartCatalog in the CatalogTables form has traits written per each type.
            A trait is a named boolean value which a type either has or does not have.
            A type has a trait named after each of its part attributes, and after each zone it's in.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.SupportedTraitNamespacesNamespace">
            <summary>
            Namespace in which the namespaces of available traits are written as if they're trait local names.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.CreateRegistrationForTraitNamespaces(JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.TraitSetsFromCalculators)">
            <summary>
            To let catalog reader know available trait namespaces without full enumeration, those namespaces are registered as if trait names, see <see cref="M:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.RegisterTraitNamespaces(System.Collections.Generic.JetHashSet{System.String})" /> impl for comments on details.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.InvokeCalculateTraitsAsync(JetBrains.Lifetimes.OuterLifetime,System.Collections.Generic.ICollection{JetBrains.Application.Table.Emit.Common.ICalculateTraitsForPartCatalogTables},JetBrains.Application.Catalogs.PartCatalog,JetBrains.Application.Threading.Tasks.ITaskHost,JetBrains.Util.ILogger)">
            <summary>
            Calculates traits for a catalog whose tables have been filled by actual data, before writing it as a memdump.
            This process is not extensible.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.PrepForWritingOutAsync(JetBrains.Lifetimes.OuterLifetime,JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.TraitSetsWithNamespaces,JetBrains.Application.Threading.Tasks.ITaskHost)">
            <summary>
            Records the traits in their correct format after they have already been calculated. This is emitter-format-agnostic, but the data is ready for putting into tables.
            Supposed sources:
            (1) Original calculation of the type/member traits off the already-written other tables.
            (2) Collected info from old groups of tables for writing into a single new set of tables.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.RegisterTraitNamespaces(System.Collections.Generic.JetHashSet{System.String})">
            <summary>
            Lets catalog tables consumer know that traits in this namespace have been calculated for this catalog.
            Trait names in some namespace usually look like "namespace::localname".
            If the namespace is not known in the catalog, then a catalog filter cannot be optimized by querying for its traits, and must be applied as a function.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.TraitMaskBanks`2">
            <summary>
            Info on trait mask banks, prepped for writing to tables after collecting, but in a common format for all emitters.
            NOTE that trait names full set and order is already known, so trait mask bits are final. But the full set of target entities and their order in their own table is not yet known, so this part is not final.
            </summary>
            <typeparam name="TTargetAsCatalogEntity"></typeparam>
            <typeparam name="TBankRecord"></typeparam>
            <param name="MasksWithTarget">Masks attached to target objects, each record has <see cref="P:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.TraitMaskBanks`2.NumBanksInOneMask" /> banks of the mask, ready to be copied into the target table (but it does not have the proper order, and the target table would be sparse, to match row indexes with the target in its own table).</param>
            <param name="TargetlessMaskBanks">Masks which don't belong to any specific entity and correspond to the zeroth row of the target's table.</param>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.TraitMaskBanks`2.#ctor(System.Collections.Immutable.ImmutableArray{System.ValueTuple{`0,System.ReadOnlyMemory{`1}}},System.Memory{`1})">
            <summary>
            Info on trait mask banks, prepped for writing to tables after collecting, but in a common format for all emitters.
            NOTE that trait names full set and order is already known, so trait mask bits are final. But the full set of target entities and their order in their own table is not yet known, so this part is not final.
            </summary>
            <typeparam name="TTargetAsCatalogEntity"></typeparam>
            <typeparam name="TBankRecord"></typeparam>
            <param name="MasksWithTarget">Masks attached to target objects, each record has <see cref="P:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.TraitMaskBanks`2.NumBanksInOneMask" /> banks of the mask, ready to be copied into the target table (but it does not have the proper order, and the target table would be sparse, to match row indexes with the target in its own table).</param>
            <param name="TargetlessMaskBanks">Masks which don't belong to any specific entity and correspond to the zeroth row of the target's table.</param>
        </member>
        <member name="P:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.TraitMaskBanks`2.MasksWithTarget">
            <summary>Masks attached to target objects, each record has <see cref="P:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.TraitMaskBanks`2.NumBanksInOneMask" /> banks of the mask, ready to be copied into the target table (but it does not have the proper order, and the target table would be sparse, to match row indexes with the target in its own table).</summary>
        </member>
        <member name="P:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables.TraitMaskBanks`2.TargetlessMaskBanks">
            <summary>Masks which don't belong to any specific entity and correspond to the zeroth row of the target's table.</summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.DeepImmutableArray`1">
            <summary>
            Tweaks an Immutable Array to be equatable and comparable sequentially (on per-item basis), so that it behaved in dictionaries and sorting.
            </summary>
            <typeparam name="TItem"></typeparam>
            <param name="Items"></param>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArray`1.#ctor(System.Collections.Immutable.ImmutableArray{`0})">
            <summary>
            Tweaks an Immutable Array to be equatable and comparable sequentially (on per-item basis), so that it behaved in dictionaries and sorting.
            </summary>
            <typeparam name="TItem"></typeparam>
            <param name="Items"></param>
        </member>
        <member name="P:JetBrains.Application.Table.Emit.DeepImmutableArray`1.Items">
            <summary></summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArray`1.ToString">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArray`1.System#IComparable#CompareTo(System.Object)">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.DeepImmutableArrayOfAttributeArguments">
            <summary>
            A manual specializaton of <see cref="T:JetBrains.Application.Table.Emit.DeepImmutableArray`1" /> because NetFX runtime has an issue with generic specializations on struct fields with the type of the structure itself.
            So if you need to store an <c>ImmutableArray(Of X)</c> inside <c>X</c> itself, it would compile and make a perfectly valid assembly (because the actual nested <c>X</c> items aren't stored inside <c>X</c>'s data directly, but under an array reference type, which is a different object), and run okay within NetCore, but NetFX has a bug which crashes the runtime with a TypeLoadException.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArrayOfAttributeArguments.CompareTo(JetBrains.Application.Table.Emit.DeepImmutableArrayOfAttributeArguments)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArrayOfAttributeArguments.Equals(JetBrains.Application.Table.Emit.DeepImmutableArrayOfAttributeArguments)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArrayOfAttributeArguments.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArrayOfAttributeArguments.GetHashCode">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.DeepImmutableArrayOfTypes">
            <summary>
            A manual specializaton of <see cref="T:JetBrains.Application.Table.Emit.DeepImmutableArray`1" /> because NetFX runtime has an issue with generic specializations on struct fields with the type of the structure itself.
            So if you need to store an <c>ImmutableArray(Of X)</c> inside <c>X</c> itself, it would compile and make a perfectly valid assembly (because the actual nested <c>X</c> items aren't stored inside <c>X</c>'s data directly, but under an array reference type, which is a different object), and run okay within NetCore, but NetFX has a bug which crashes the runtime with a TypeLoadException.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArrayOfTypes.CompareTo(JetBrains.Application.Table.Emit.DeepImmutableArrayOfTypes)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArrayOfTypes.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArrayOfTypes.Equals(JetBrains.Application.Table.Emit.DeepImmutableArrayOfTypes)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.DeepImmutableArrayOfTypes.GetHashCode">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.JetMetadata.PartHelpersJetMeta">
            <summary>
            Companion for <see cref="T:JetBrains.Application.Table.Emit.Common.PartHelpers" /> which works with our <see cref="T:JetBrains.Metadata.Access.IMetadataAccess" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.JetMetadata.PartHelpersJetMeta.CreateFileResolver(JetBrains.Lifetimes.Lifetime,System.Collections.Generic.IEnumerable{JetBrains.Util.FileSystemPath},System.Func{JetBrains.Lifetimes.Lifetime,JetBrains.Metadata.Reader.API.IAssemblyResolver},JetBrains.Util.OnError,JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption)">
            <summary>
            Creates a resolver for reading the group of assemblies.
            </summary>
            <param name="lifetime">Lifetime, usually a <see cref="M:JetBrains.Lifetimes.Lifetime.Using(System.Action{JetBrains.Lifetimes.Lifetime})" /> around the usage.</param>
            <param name="assembliesCurrent">The list of assemblies we're going to process during this run. They will be available for resolve.</param>
            <param name="createAdditionalResolvers">Optional. Creates any additional resolvers.</param>
            <param name="resolveerrors">Reports unresolved assembly errors when you call into the resolver. The full set of errors will be submitted after you terminate the lifetime.</param>
            <param name="rrop"><inheritdoc cref="T:JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption" /></param>
            <returns>Resolver.</returns>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.JetMetadata.PartHelpersJetMeta.CreateFileResolver(JetBrains.Lifetimes.Lifetime,System.Collections.Generic.IEnumerable{JetBrains.Util.FileSystemPath},JetBrains.Metadata.Reader.API.IAssemblyResolver,JetBrains.Util.OnError,JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption)">
            <summary>
            Creates a resolver for reading the group of assemblies.
            </summary>
            <param name="lifetime">Lifetime, usually a <see cref="M:JetBrains.Lifetimes.Lifetime.Using(System.Action{JetBrains.Lifetimes.Lifetime})" /> around the usage.</param>
            <param name="assembliesCurrent">The list of assemblies we're going to process during this run. They will be available for resolve.</param>
            <param name="customresolver">Optional. Any custom resolvers.</param>
            <param name="resolveerrors">Reports unresolved assembly errors when you call into the resolver. The full set of errors will be submitted after you terminate the lifetime.</param>
            <param name="rrop"><inheritdoc cref="T:JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption" /></param>
            <returns>Resolver.</returns>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.JetMetadata.PartHelpersJetMeta.CreateStreamResolver(JetBrains.Lifetimes.Lifetime,System.Collections.Generic.IDictionary{JetBrains.Metadata.Utils.AssemblyNameInfo,System.Func{JetBrains.Lifetimes.Lifetime,System.IO.Stream}},System.Func{JetBrains.Lifetimes.Lifetime,JetBrains.Metadata.Reader.API.IAssemblyResolver},JetBrains.Util.OnError,JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption)">
            <summary>
            Creates a resolver for reading the group of assemblies.
            </summary>
            <param name="lifetime">Lifetime, usually a <see cref="M:JetBrains.Lifetimes.Lifetime.Using(System.Action{JetBrains.Lifetimes.Lifetime})" /> around the usage.</param>
            <param name="assembliesCurrent">The list of assemblies we're going to process during this run. They will be available for resolve.</param>
            <param name="createAdditionalResolvers">Optional. Creates any additional resolvers.</param>
            <param name="resolveerrors">Reports unresolved assembly errors when you call into the resolver. The full set of errors will be submitted after you terminate the lifetime.</param>
            <param name="rrop"><inheritdoc cref="T:JetBrains.Application.Table.Emit.Common.PartHelpers.RuntimeResolverOption" /></param>
            <returns>Resolver.</returns>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.CatalogTablesMerger.MergeCatalogTables(System.Collections.Immutable.ImmutableArray{JetBrains.Application.Table.CatalogTables},System.IO.Stream)">
            <summary>
            Merges several catalog tables for non-intersecting cataloged assembly sets into a single catalog table.
            </summary>
            <param name="olds">Partial tables.</param>
            <param name="output">Write target for the catalog tables.</param>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.CatalogTablesMerger.FillPreCreatedShallowTypes_Traits(JetBrains.Application.Table.Record.Ref.TypeRef,JetBrains.Application.Table.Emit.V1Sync.CatalogTablesMerger.TableAndRef{JetBrains.Application.Table.Record.Ref.TypeRef},System.Collections.Generic.List{System.ValueTuple{JetBrains.Application.Catalogs.PartCatalogType,JetBrains.Application.Catalogs.Filtering.PartCatalogTrait}},JetBrains.Application.Table.Emit.V1Sync.EmitTimeTablesPartCatalogStorageEmulation,JetBrains.Application.Table.Emit.V1Sync.CatalogTablesMerger.CacheOldRuntimeStrings)">
            <summary>
            Fetches trait names of the old type, registers to be applied to the new one.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V1Sync.CatalogTablesMerger.AssemblyCataloged">
            <summary>
            An assembly after cataloging into the merged tables.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.CreateCatalogTablesWithMetadataReader(System.Collections.Generic.IEnumerable{JetBrains.Metadata.Utils.AssemblyNameInfo},JetBrains.Application.Bindings.IAssemblyMasterBinder,System.Collections.Generic.ICollection{JetBrains.Application.Table.Emit.Common.ICalculateTraitsForPartCatalogTables},System.IO.Stream,JetBrains.Util.ILogger)">
            <summary>
            E
            </summary>
            <param name="assemblies">The list of assembly names for assemblies which should be included with the catalog (and scanned for types).</param>
            <param name="masterbinder">Knows how to bind assembly names for reading, including the listed names and their references.</param>
            <param name="traitcalc"></param>
            <param name="output">Write target for the catalog tables.</param>
            <param name="logger"></param>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Assemblies.GetAssemblyNameFromMetadataAssembly(JetBrains.Metadata.Reader.API.IMetadataAssembly)">
            <summary>
            Creates a reference to the Assembly table without filling its details. No recursion possible.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Assemblies.GetAssemblyNameFromMetadataTypeDeclaration(JetBrains.Metadata.Reader.API.IMetadataTypeInfo)">
            <summary>
            Creates a reference to the Assembly table without filling its details. No recursion possible.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Assemblies.GetAssemblyNameFromMetadataTypeReference(JetBrains.Metadata.Reader.API.IMetadataType)">
            <summary>
            Creates a reference to the Assembly table without filling its details. No recursion possible.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Assemblies.PreCreateFromMetadataAssembly(JetBrains.Metadata.Reader.API.IMetadataAssembly,JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables)">
            <summary>
            Creates a reference to the Assembly table without filling its details. No recursion possible.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Assemblies.PreCreateFromMetadataTypeDeclaration(JetBrains.Metadata.Reader.API.IMetadataTypeInfo,JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables)">
            <summary>
            Creates a reference to the Assembly table without filling its details. No recursion possible.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Assemblies.PreCreateFromMetadataTypeReference(JetBrains.Metadata.Reader.API.IMetadataType,JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables)">
            <summary>
            Creates a reference to the Assembly table without filling its details. No recursion possible.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Assemblies.PreCreateAssemblyForCataloging_CheckActualName(JetBrains.Metadata.Utils.AssemblyNameInfo,JetBrains.Metadata.Utils.AssemblyNameInfo,JetBrains.Util.ILogger)">
            <summary>
            After the binder loads an assembly by its assembly name, checks that the assembly actually loaded matches what was requested.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Attributes.IsPartAttribute(JetBrains.Metadata.Reader.API.IMetadataCustomAttribute,JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables)">
            <summary>
            Checks if the attr is a part attr (others won't be recorded).
            </summary>
            <param name="attributeMetadata"></param>
            <param name="tables">Optional. If available, caches repeated checks.</param>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Blobs.CreateCatalogEntryPointListsAndBlobs(JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables,System.Collections.Generic.IEnumerable{JetBrains.Application.Table.Record.Ref.AssemblyRef})">
            <summary>
            Creates global lists in the catalog which are entry points for the global enumeration functions: the ranges for all cataloged assemblies and all part types.
            These are the backends for the global catalog functions with which everything begins.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.PreCreateFromMetadataTypeDeclaration(JetBrains.Metadata.Reader.API.IMetadataTypeInfo,JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables)">
            <summary>
            Gets a type table reference for the given metadata type declaration.
            The type record is allocated in the Type table and scheduled for completion, but at the moment no fields are filled and there can be no recursion at all in this method, to its safe to use in any sequential context.
            A metadata type declaration is a class-like thing declared in metadata. A metadata type reference is some usage of a metadata type declaration, either AS IS if it's a simple case, but could be a generic specialization, a reference, an array and lots of other things. Also a type reference might resolve to synthetic stuff like generic formal parameters.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.PreCreateFromMetadataTypeReference(JetBrains.Metadata.Reader.API.IMetadataType,JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables)">
            <summary>
            Gets a type table reference for the given metadata type reference.
            The type record is allocated in the Type table and scheduled for completion, but at the moment no fields are filled and there can be no recursion at all in this method, to its safe to use in any sequential context.
            A metadata type declaration is a class-like thing declared in metadata. A metadata type reference is some usage of a metadata type declaration, either AS IS if it's a simple case, but could be a generic specialization, a reference, an array and lots of other things. Also a type reference might resolve to synthetic stuff like generic formal parameters.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.GetClassBaseTypes(JetBrains.Metadata.Reader.API.IMetadataTypeInfo,JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables)">
            <summary>
            Traverses bases of a class (which is a a generic specialization of a type declaration, or the type declaration itself as an open-generic).
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.GetClassBaseTypes(JetBrains.Metadata.Reader.API.IMetadataClassType,JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables)">
            <summary>
            Traverses bases of a class (which is a a generic specialization of a type declaration, or the type declaration itself as an open-generic).
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.GetClassGenericArguments_IsTypeArgumentSupported(JetBrains.Metadata.Reader.API.IMetadataType)">
            <summary>
                      TODO: Why ignoring types other than IMetadataClassType? Because PartCatalogType type system is weak and cannot handle arrays / formal generic parameter references. If ever we want to do that, we'll have to make more complicated (like runtime type or metadata type), which we don't need right now and which will make simple use cases more complicated
             Possible other types which are currently ignored:
            IMetadataTypeParameterReferenceType: this actually might mean that it's specialized to the type parameter of the containing class (or it's a generic method). If you ever need to support these, you'll have to pull them thru the catalog types system. Currently, we treat such types as open generics.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.TypePreCreationKey">
            <summary>
            When we pre-create a type without traversing it recursively, that's the identity object by which we match types for reuse.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.TypePreCreationKey.AssemblyName">
            <summary>
            Stores the assembly of the type. Not an assembly ref yet, because we don't want to recurse into its creation.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.TypePreCreationRecord">
            <summary>
            The full stored info for a pre-created type.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.TypePreCreationRecord.SourceObject">
            <summary>
            Either a type declaration or a type reference or the reference to the original table or whatever else the originator tracks in this field. The table handles it transparently.
            For metadata entities, this is not unique per type because a transparent typeref is the same as typedecl, and typerefs are not singletons.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitCatalogTables.Types.TypePreCreationRecord.TypeRef">
            <summary>
            Points to the allocated cell for this type in the Types table.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V1Sync.EmitTablesFileWriter">
            <summary>
            Helps with writing catalog tables file from the runtime tables.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTablesFileWriter.WriteCatalogTablesFile(JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables,System.IO.Stream)">
            <summary>
            After emit-time tables are fully filled, writes them to a BLOB in the <see cref="T:JetBrains.Application.Table.CatalogTables" /> format.
            </summary>
            <param name="tables"></param>
            <param name="output"></param>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTablesFileWriter.CatalogTablesFileWriteSession.OffsetFirstTableFromFileHeader">
            <summary>
            Helps with positioning for writing the next <see cref="T:JetBrains.Application.Table.Record.TableHeader" />.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTablesFileWriter.CatalogTablesFileWriteSession.SupposedNumTables">
            <summary>
            Alloc some space for the header to have known RVAs for tables we write — take the number not too large but enough to fit our tables.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V1Sync.EmitTablesFileWriter.CatalogTablesFileWriteSession.NextTableBodyRva">
            <summary>
            Free space for writing the next table body.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTablesFileWriter.CatalogTablesFileWriteSession.NumActualTablesWritten">
            <summary>
            Counts <see cref="T:JetBrains.Application.Table.Record.TableHeader" /> items as we write them to the stream. Goes to the count in the header at the end. Is checked against the <see cref="F:JetBrains.Application.Table.Emit.V1Sync.EmitTablesFileWriter.CatalogTablesFileWriteSession.SupposedNumTables" /> size we preallocate.
            Set to <see cref="F:System.Int32.MaxValue" /> upon finalization of the session (when actual count is written to the header).
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitAttributeTable.IsPartAttribute(JetBrains.Metadata.Reader.API.IMetadataCustomAttribute)">
            <summary>
            Checks if the attr is a part attr, with caching check results for speed.
            </summary>
            <param name="attributeMetadata"></param>
            <returns></returns>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitBlobTable.myIndexPreRecords">
            <summary>
            These records have their RVAs relative to the blob bodies dump temporarily, will be rewritten to table-body-based when writing out.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitBlobTable.WriteOut">
            <summary>
            Renders the table body in storage-ready form.
            </summary>
            <returns></returns>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1">
            <summary>
            A generic POD table which supports common-sence merging of idential records, and ranges of records.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.myCurrentRange">
            <summary>
            NULL if not writing a range (can never have zero items in a table).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.myIsOccupiedReference">
            <summary>
            Some algorithm is working on references to this table, and thinks that this should not be reentered.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.myIsOccupiedTable">
            <summary>
            Some algorithm has taken an occupance lock on this table.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.Item(System.Int32)">
            <summary>
            Accesses the table storage by index.
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.Storage">
            <summary>
            Storage. Immediately adds an empty record to block the NULL address.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.AddRecord(`0)">
            <summary>
            Adds a record to the table, when not in range mode. Might get merged into an existing record.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.BeginRange">
            <summary>
            Starts writing a range of records for which you then get a RangeRef.
            Should add records thru this object only. For instance, individual items won't be merged into existing ones, but a range in the whole would be attempted to be merged.
            <see cref="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.RangeMarker.CommitRange(JetBrains.Application.Table.Emit.V1Sync.RecordsOrder)" /> when done.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.MergeRangeIfAtEnd(JetBrains.Application.Table.Record.RangeRef.ARangeRef,JetBrains.Application.Table.Emit.V1Sync.RecordsOrder)">
            <summary>
            Tries to look up an existing range with exactly the same values already in the table. If so, “merges” the new range into it: returns the existing range and frees the new items.
            Only works if the current range is still at the end of the table, otherwise we can't trivially remove the range without rewriting refs from other tables.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.OccupyReferences">
            <summary>
            Some algorithm is working on references to this table, and thinks that this should not be reentered.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.OccupyTable">
            <summary>
            Occupies the table for exclusive use, to make sure our intermediate references are still valid.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.ReserveRange(System.Int32)">
            <summary>
            Reserves a range of empty slots at the end of the table.
            No merge applicable here, the items are not yet filled.
            DON'T USE unless special case like recursive attr arg fill.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.MergeRange(JetBrains.Application.Table.Record.RangeRef.ARangeRef,JetBrains.Application.Table.Emit.V1Sync.RecordsOrder)">
            <summary>
            Tries to look up an existing range with exactly the same values already in the table. If so, “merges” the new range into it: returns the existing range and frees the new items.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.RangeMarker">
            <summary>
            When in range mode.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.RangeMarker.AddRecord(`0)">
            <summary>
            Adds a record, when in Range mode.
            Merging won't be done for this single record, but for the range in the whole, to ensure it's contiguous.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitPodTable`1.RangeMarker.Dispose">
            <summary>
            A safety catch in case building a range is aborted with an exception, unwinds and lets other operations proceed without leaving an unfinished range behind.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitStringTable.myMapStrings">
            <summary>
            For handling duplicates.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitStringTable.GetOrCreateRecord(JetBrains.Application.Table.CatalogTables,JetBrains.Application.Table.Record.Ref.StringRef)">
            <summary>
            Creates a new string record based on a string record in another existing table.
            </summary>
            <param name="other"></param>
            <param name="refInOther"></param>
            <returns></returns>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables.EmitTypeTable.PreCreatedShallowTypesQueue">
            <summary>
            First, when filling catalog, all pre-created types get here (details are not collected to avoid recursion and reentrancy in all funcs).
            Then we run the queue to fill details on those types. During that procedure more types might be added to the queue because recursive traversal of the types hits more of them.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTablesPartCatalogStorageEmulation">
            <summary>
            A part catalog backing storage implementation which runs off the emit-time catalog tables.
            This is a not general-purpose impl, covers select scnarios when we want the convenient APIs to a catalog still being constructed.
            Any unintended use might fail because (1) only useful code paths were implemented, and might have been partially implemented, and (2) emit-time tables are not always in a consistent state.
            Don't try this at home, all usages are performed by trained professionals %-/
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTablesPartCatalogStorageEmulation.GetString(JetBrains.Application.Table.Record.Ref.StringRef)">
            <summary>
            Unlike catalog tables, at emittime this operation is not prohibitively slow (currently).
            </summary>
            <param name="sref"></param>
            <returns></returns>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.EmitTimeTablesPartCatalogStorageEmulation.JetBrains#Application#Catalogs#IPartCatalogStorage#GlobalGetAllPartMembers">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V1Sync.RecordsOrder">
            <summary>
            Whether the order of records in the range is important.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V1Sync.TraitsInCatalogTablesV1Sync">
            <summary>
            <see cref="T:JetBrains.Application.Table.Emit.Common.TraitsInCatalogTables" /> for V1Sync write-out.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V1Sync.TraitsInCatalogTablesV1Sync.CalculateTraits(JetBrains.Application.Table.Emit.V1Sync.EmitTimeTables,System.Collections.Generic.ICollection{JetBrains.Application.Table.Emit.Common.ICalculateTraitsForPartCatalogTables})">
            <summary>
            Calculates traits for a catalog whose tables have been filled by actual data, before writing it as a memdump.
            This process is not extensible.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.EmitPartCatalogTablesException">
            <summary>
            Error while emitting Catalog Tables for the Part Catalog.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitPartCatalogTablesException.#ctor(System.String,System.Exception)">
            <inheritdoc />
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myMapAssemblyToToken">
            <summary>
            Pessimistically RW locked with <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> because it needs to update this map and the table in sync, to add the table index to this table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myMapAttributeArgumentToToken">
            <summary>
            Pessimistically RW locked with <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> because it needs to update this map and the table in sync, to add the table index to this table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myMapAttributeToToken">
            <summary>
            Pessimistically RW locked with <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> because it needs to update this map and the table in sync, to add the table index to this table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myMapMemberToToken">
            <summary>
            Pessimistically RW locked with <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> because it needs to update this map and the table in sync, to add the table index to this table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myMapTypeToToken">
            <summary>
            Pessimistically RW locked with <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> because it needs to update this map and the table in sync, to add the table index to this table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myTableAssembly">
            <summary>
            Read lock-free, mutated under <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> writer lock.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myTableAttribute">
            <summary>
            Read lock-free, mutated under <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> writer lock.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myTableAttributeArgument">
            <summary>
            Read lock-free, mutated under <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> writer lock.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myTableMember">
            <summary>
            Read lock-free, mutated under <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> writer lock.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myTableType">
            <summary>
            Read lock-free, mutated under <see cref="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.myLock" /> writer lock.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#ApplyFilter(JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetBinder(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetFullName(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetHashCode(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetNameInfo(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetPartAttributes(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken},System.Type)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetPartMembers(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetPartTypes(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetReferencedAssemblies(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetSimpleName(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyIsCataloged(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeArgumentGetBoxedValue(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeArgumentGetDisposition(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeArgumentGetName(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeArgumentGetPrimitiveValue(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken},System.Nullable{JetBrains.Application.Table.Record.AttributeArgumentValueElementType})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeArgumentGetStringValue(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeArgumentGetTypeValue(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeArgumentGetValueElementType(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeArgumentToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeGetArguments(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeGetInstance(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeToken},JetBrains.Util.OnError)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeGetType(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeTryGetArgumentByName(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeToken},System.String)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AttributeTryGetConstructorFormalParameterTypes(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAttributeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#GetTypeLocalName(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#GlobalGetAllPartMembers">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#GlobalGetAllPartTypes">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#GlobalGetCatalogedAssemblies">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#MemberBind(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogMemberToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#MemberGetDeclaringType(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogMemberToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#MemberGetHashCode(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogMemberToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#MemberGetKind(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogMemberToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#MemberGetName(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogMemberToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#MemberGetParameterTypes(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogMemberToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#MemberGetPartAttributes(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogMemberToken},System.Type)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#MemberGetValueType(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogMemberToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeBind(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeEqualsRuntimeType(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken},System.Type)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeGetAssembly(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeGetAssemblyQualifiedName(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeGetBaseTypes(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeGetExtraTypes(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeGetFullName(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeGetHashCode(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeGetKind(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeGetPartAttributes(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken},System.Type)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeGetPartMembers(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeCatalogStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#TypeTryGetBoundType(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync">
            <summary>
            Part catalog tables in process of multi-threaded emit.
            Should NOT depend on the particular metadata source (such as Roslyn or JetBrains Metadata Reader or runtime assembly).
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Assembly">
            <summary>
            Only filled for cataloged ones.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Assembly.#ctor(JetBrains.Application.Table.Emit.DeepImmutableArray{JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type},JetBrains.Application.Table.Emit.DeepImmutableArray{JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Member},JetBrains.Application.Table.Emit.DeepImmutableArray{JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Attribute},JetBrains.Application.Table.Emit.DeepImmutableArray{JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Assembly},System.Guid,JetBrains.Application.Table.Record.AssemblyRecordFlags)">
            <summary>
            Only filled for cataloged ones.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Assembly.CompareTo(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Assembly)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Member.CompareTo(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Member)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Type.CompareTo(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Type)">
            <inheritdoc />
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitAssemblyListTable.LayOutComparer">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitAssemblyListTable.RenderRecord(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Assembly@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.None@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Table.Record.AssemblyListRecord@)">
            <inheritdoc />
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitAssemblyTable.LayOutComparer">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitAssemblyTable.RenderRecord(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Assembly@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Assembly@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Table.Record.AssemblyRecord@)">
            <inheritdoc />
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitAttributeArgumentTable.LayOutComparer">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitAttributeArgumentTable.RenderRecord(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.AttributeArgument@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.None@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Table.Record.AttributeArgumentRecord@)">
            <inheritdoc />
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitAttributeTable.LayOutComparer">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitAttributeTable.RenderRecord(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Attribute@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.None@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Table.Record.AttributeRecord@)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitBlobTable.JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#IEmitTable#Layout">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitBlobTable.JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#IEmitTable#RenderAsync(JetBrains.Lifetimes.OuterLifetime,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Threading.Tasks.ITaskHost,JetBrains.Util.ILogger)">
            <inheritdoc />
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitMemberListTable.LayOutComparer">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitMemberListTable.RenderRecord(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Member@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.None@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Table.Record.MemberListRecord@)">
            <inheritdoc />
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitMemberTable.LayOutComparer">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitMemberTable.RenderRecord(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Member@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Member@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Table.Record.MemberRecord@)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodGroupTable`4.GetRangeRef(JetBrains.Application.Table.Emit.DeepImmutableArray{`0})">
            <summary>
            For a group registered with <see cref="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodGroupTable`4.RegisterGroup(System.Collections.Immutable.ImmutableArray{`0})" /> before the table was laid out, gets the final range reference after the table has been laid out.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodTable`4.myLayout">
            <summary>
            Assigned after table is laid out, i.e. the set and data are frozen, the order of records is set up and
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodTable`4.GetARef(`0)">
            <summary>
            For a record registered with <see cref="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodTable`4.Register(`0)" /> before the table was laid out, gets the final reference after the table has been laid out.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodTable`4.GetRef(`0)">
            <inheritdoc cref="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodTable`4.GetARef(`0)" />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodTable`4.Register(`0)">
            <summary>
            For a table that hasn't been laid out, registers a primary key.
            After laying out, you'd be able to <see cref="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodTable`4.GetRef(`0)" /> a reference to the record with such a key for use in other tables.
            Registering more than once is okay. If your record has anything beyond the primary key, update data for registered records thru <see cref="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodTable`4.Data" />.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitPodTable`4.JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#IEmitPodTable{TPrimaryKey}#NumRecords">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitStaticTable`2">
            <summary>
            Base table which gets its whole set of record in one batch, just needs to render them by resolving references.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitStringTable.Layout">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitStringTable.RenderAsync(JetBrains.Lifetimes.OuterLifetime,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Threading.Tasks.ITaskHost,JetBrains.Util.ILogger)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitTraitNameTable.RenderRecord(JetBrains.Application.Catalogs.Filtering.PartCatalogTrait@,JetBrains.Application.Table.Record.TraitNameRecord@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync)">
            <inheritdoc />
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitTypeListTable.LayOutComparer">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitTypeListTable.RenderRecord(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.None@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Table.Record.TypeListRecord@)">
            <inheritdoc />
        </member>
        <member name="P:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitTypeTable.LayOutComparer">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.EmitTypeTable.RenderRecord(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.Data.Type@,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Table.Record.TypeRecord@)">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.IEmitTable">
            <summary>
            Common base iface for all the tables.
            Defines its lifecycle:
            (1) Registration. Table is writable. Records are added by registering their primary keys (and possibly some more data added immediately or later while the table is writable).
            (2) Freezing. Table can be written no more. That's the first thing <see cref="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.IEmitTable.Layout" /> does.
            (3) Layout. Registered records get a linear order and can be referenced by either index, or range, or RVA, depending on the nature.
            (4) Rendering. Makes the output binary representaiton of the table, using its own layout and asking for other tables' layout to convert primary key references to their records into ref/rangeref/rva.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.IEmitTable.Layout">
            <summary>
            Ends the writable phase (can be modified) and enters the laid out phase (sealed, but can tell record ARef/ARangeRef by its primary key).
            During layout, table decides which index each record would have in the final render. Must not ask other tables of their layout at this moment.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.IEmitTable.RenderAsync(JetBrains.Lifetimes.OuterLifetime,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync,JetBrains.Application.Threading.Tasks.ITaskHost,JetBrains.Util.ILogger)">
            <summary>
            In the laid out phase, can produce actual binary records. For this, needs to know layout of all other tables, to turn foreign keys into refs and rangerefs. So this needs to run after layout on all the tables is completed.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Assembly">
            <summary>
            That's the only info we have for non-cataloged assemblies.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Assembly.#ctor(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.String)">
            <summary>
            That's the only info we have for non-cataloged assemblies.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Attribute.CompareTo(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Attribute)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.AttributeArgument.CompareTo(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.AttributeArgument)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Member.CompareTo(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Member)">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.RefPromise">
            <summary>
            While emitting tables concurrently, we often use temporary references to table rows.
            To tell from real references, they have the MostSignificantBit set. This class helps with manipulating such refs.
            When writing out actual tables, these references need to be rewritten with real values.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.RefPromise.Equals(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.RefPromise)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.RefPromise.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.RefPromise.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.RenderedTable.System#IComparable{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#RenderedTable}#CompareTo(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.RenderedTable)">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys">
            <summary>
            Decodes types when reading signatures: basic typedef/typeref, then wraps them with by-ref, array, specialization, etc.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.#ctor(JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EmitSession)">
            <summary>
            Decodes types when reading signatures: basic typedef/typeref, then wraps them with by-ref, array, specialization, etc.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#IConstructedTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type}#GetArrayType(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type,System.Reflection.Metadata.ArrayShape)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#IConstructedTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type}#GetByReferenceType(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type,JetBrains#Application#Table#Emit#V2Async#Roslyn#ConstructTypesAsPrimaryKeys#Context}#GetFunctionPointerType(System.Reflection.Metadata.MethodSignature{JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#IConstructedTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type}#GetGenericInstantiation(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type,System.Collections.Immutable.ImmutableArray{JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type,JetBrains#Application#Table#Emit#V2Async#Roslyn#ConstructTypesAsPrimaryKeys#Context}#GetGenericMethodParameter(JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.Context,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type,JetBrains#Application#Table#Emit#V2Async#Roslyn#ConstructTypesAsPrimaryKeys#Context}#GetGenericTypeParameter(JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.Context,System.Int32)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type,JetBrains#Application#Table#Emit#V2Async#Roslyn#ConstructTypesAsPrimaryKeys#Context}#GetModifiedType(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type,JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type,System.Boolean)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type,JetBrains#Application#Table#Emit#V2Async#Roslyn#ConstructTypesAsPrimaryKeys#Context}#GetPinnedType(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#IConstructedTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type}#GetPointerType(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISimpleTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type}#GetPrimitiveType(System.Reflection.Metadata.PrimitiveTypeCode)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISZArrayTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type}#GetSZArrayType(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISimpleTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type}#GetTypeFromDefinition(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.TypeDefinitionHandle,System.Byte)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISimpleTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type}#GetTypeFromReference(System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.TypeReferenceHandle,System.Byte)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.System#Reflection#Metadata#ISignatureTypeProvider{JetBrains#Application#Table#Emit#V2Async#EmitTimeTablesAsync#PrimaryKeys#Type,JetBrains#Application#Table#Emit#V2Async#Roslyn#ConstructTypesAsPrimaryKeys#Context}#GetTypeFromSpecification(System.Reflection.Metadata.MetadataReader,JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.Context,System.Reflection.Metadata.TypeSpecificationHandle,System.Byte)">
            <inheritdoc />
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.Context">
            <summary>
            Currently only used to provide assembly for method/type generic argument reference type.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.ConstructTypesAsPrimaryKeys.Context.#ctor(System.Reflection.Metadata.MetadataReader,JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EmitSession)">
            <summary>
            Currently only used to provide assembly for method/type generic argument reference type.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.CreateCatalogTables(JetBrains.Lifetimes.OuterLifetime,System.Collections.Generic.IEnumerable{JetBrains.Metadata.Utils.AssemblyNameInfo},JetBrains.Application.Bindings.IAssemblyMasterBinder,System.Collections.Generic.ICollection{JetBrains.Application.Table.Emit.Common.ICalculateTraitsForPartCatalogTables},JetBrains.Application.Threading.Tasks.ITaskHost,JetBrains.Util.ILogger)">
            <summary>
            E
            </summary>
            <param name="lifetime"></param>
            <param name="assemblies">The list of assembly names for assemblies which should be included with the catalog (and scanned for types).</param>
            <param name="masterbinder">Knows how to bind assembly names for reading, including the listed names and their references.</param>
            <param name="traitcalc"></param>
            <param name="tasker"></param>
            <param name="logger"></param>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EnrichmentQueues">
            <summary>
            Manages "enrichment" of entities in <see cref="T:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync" />.
            The idea is that when doing any scanning, we only read things required for filling in the primary key for the entity (to be able to register it in the table), and do not go collecting all the deep data, otherwise we might hit infinite recursion on type loops (e.g. T : IEquatable[T]).
            If we need more data for the entity (not always btw, trivial things are all in PKs), we schedule a task for enriching it.
            This task would work basically the same: grab more trivial things and schedule enrichment where appropriate.
            </summary>
            <param name="lifetime"></param>
            <param name="tasker"></param>
            <param name="logger"></param>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EnrichmentQueues.#ctor(JetBrains.Lifetimes.OuterLifetime,JetBrains.Application.Threading.Tasks.ITaskHost,JetBrains.Util.ILogger)">
            <summary>
            Manages "enrichment" of entities in <see cref="T:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync" />.
            The idea is that when doing any scanning, we only read things required for filling in the primary key for the entity (to be able to register it in the table), and do not go collecting all the deep data, otherwise we might hit infinite recursion on type loops (e.g. T : IEquatable[T]).
            If we need more data for the entity (not always btw, trivial things are all in PKs), we schedule a task for enriching it.
            This task would work basically the same: grab more trivial things and schedule enrichment where appropriate.
            </summary>
            <param name="lifetime"></param>
            <param name="tasker"></param>
            <param name="logger"></param>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EnrichmentQueues.SubmitForEnrichment(System.Object,System.Func{System.Threading.Tasks.ValueTask})">
            <summary>
            Adds a task for enrichment for some entity to the queue.
            </summary>
            <seealso cref="T:JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EnrichmentQueues" />
            <param name="keyToCheckForDuplicateSubmissions">Some identity (usually, primary key) to make sure we do not submit it twice when we hit it from different paths.</param>
            <param name="item">Task itself.</param>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.Members.RegisterWithEnrichment(JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Member,System.Reflection.Metadata.MetadataReader,System.Reflection.Metadata.CustomAttributeHandleCollection,JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EmitSession)">
            <summary>
            Register member primary key itself in the table + schedule enrichment for its data (attributes).
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.Types.CollectPrimitiveTypes(JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EmitSession)">
            <summary>
            Primitive types are recorded just as type codes, and for such cases we need to be able to look them up without context => try locaing a system assembly among our lot, and preload such types.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.Types.RegisterTypeRefNoResolve(System.Reflection.Metadata.TypeReferenceHandle,System.Reflection.Metadata.MetadataReader,JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EmitSession,System.UInt32)">
            <summary>
            Two ways to handle a TypeRef:
            (1) <see cref="T:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers" />::<see cref="M:JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.ResolveTypeRef(System.Reflection.Metadata.TypeReferenceHandle,System.Reflection.Metadata.MetadataReader,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession)" /> into a TypeDef, and use <see cref="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.Types.RegisterTypeDefinition(JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.TypeDefFromAssembly,JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EmitSession)" />.
            (2) Use information available on TypeRef to make a <see cref="T:JetBrains.Application.Table.Emit.V2Async.EmitTimeTablesAsync.PrimaryKeys.Type" /> primary key out of it (won't have the token in extra data, but would get it elsewhere).
            This one implements option (2) as a lightweight choice which also goes lightly about missing non-critical assemblies.
            </summary>
            <param name="hRef"></param>
            <param name="metareader"></param>
            <param name="session"></param>
            <param name="nesting"></param>
            <returns></returns>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.Roslyn.PartHelpersRoslynMeta.CacheIsPartAttributeConstructor">
            <summary>
            Fast check for whether the attr is a part attr. The attr token is unique, while the ctor is immediately available (no resolve) and is reused A LOT.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Emit.V2Async.Roslyn.PartHelpersRoslynMeta.CacheIsPartAttributeType">
            <summary>
            For any base types of an attr, records if it's known to be a part type or not. When walking bases, records each step here.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.PartHelpersRoslynMeta.IsPartAttributeType(JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.TypeDefFromAssembly,JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderBinderSession,System.Collections.Concurrent.ConcurrentDictionary{JetBrains.Application.Metadata.Roslyn.RoslynMetadataReaderHelpers.TypeDefFromAssembly,JetBrains.Application.Metadata.Roslyn.FilteringResult{System.Boolean}},System.UInt32)">
            <summary>
            Look thru self and bases for exactly PartAttribute. Cache on each level, across all assemblies, so that further lookups didn't have to walk.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Emit.V2Async.Roslyn.RoslynCustomAttributeDecoder">
            <summary>
            Decodes custom attribute blobs.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Emit.V2Async.Roslyn.RoslynCustomAttributeDecoder.#ctor(System.Reflection.Metadata.MetadataReader,JetBrains.Application.Table.Emit.V2Async.Roslyn.EmitCatalogTablesViaRoslyn.EmitSession)">
            <summary>
            Decodes custom attribute blobs.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AssemblyListRecord.CatalogedAssembliesListRangeBlobName">
            <summary>
              <para>Name of the BLOB that holds the single <see cref="T:JetBrains.Application.Table.Record.RangeRef.AssemblyListRangeRef" /> object that points to the range in the <see cref="T:JetBrains.Application.Table.Record.AssemblyListRecord" /> table that gives the list of assemblies primarily taken for cataloging (and not just mentioned as refs etc).</para>
              <para>In short, gives the <see cref="P:JetBrains.Application.Catalogs.PartCatalog.CatalogedAssemblies" />.</para>
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.AssemblyRecord">
            <summary>
            Describes an assembly whose types are listed in this catalog.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AssemblyRecord.FullName">
            <summary>
            Assembly textual identity string.
            Must be written for any assembly record, <see cref="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly" /> or not.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AssemblyRecord.Attributes">
            <summary>
            Assembly-level custom attributes.
            Only for <see cref="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly" />.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AssemblyRecord.Types">
            <summary>
            Part types in this assembly. All other types created from this assembly, like bases/extras of part types, are not included with this listing.
            The order is undefined.
            Only for <see cref="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly" />.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AssemblyRecord.Members">
            <summary>
            Part members in this assembly - eligible members (TODO: describe which) having a part attribute, regardless of whether their containing type has a part attribute or not.
            The order is undefined.
            Only for <see cref="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly" />.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AssemblyRecord.ReferencedAssemblies">
            <summary>
            Lists assembly references of this assembly.
            The order is undefined.
            Only for <see cref="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly" />.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AssemblyRecord.Mvid">
            <summary>
              <para>MVID of the assembly, which is an unique UUID per assembly compilation (actually, with modern compilers it should be a function of all the compiler inputs, incl sources, options, and version).</para>
              <para>MVID should match such of the actual assembly on disk for a catalog to be valid and up-to-date for that assembly.</para>
              <para>Only for <see cref="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly" />.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AssemblyRecord.Flags">
            <summary>
            Flags.
            <see cref="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly" /> is only written for fully-defined assemblies.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly">
            <summary>
            If this assembly were originally requested for cataloging.
            If yes, for such an assembly the part types, attributes, references etc are collected.
            If no, then only the assembly name will be written for such an assembly.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeArgumentRecord.Name">
            <summary>
            Name of the argument, if applicable.
            Positional actual constructor parameter: name of the corresponding formal parameter in the chosen constructor.
            Named argument: name of the corresponding field or property being assigned by this argument.
            Nested argument as an array item in some other argument: n/a.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeArgumentRecord.Disposition">
            <summary>
            <see cref="T:JetBrains.Application.Catalogs.PartCatalogAttributeArgumentDisposition" /> struct raw value, decoded as an Int16, if an immediate argument of an attribute.
            <see cref="F:System.Int16.MinValue" /> for a nested argument.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeArgumentRecord.ElementType">
            <summary>
            <see cref="T:JetBrains.Application.Table.Record.AttributeArgumentValueElementType" /> whose values directly map onto <see cref="T:JetBrains.Metadata.Reader.API.ElementType" /> of the value encoded in this argument. Defines which value fields should be considered as holding the actual value, others will be n/a.
            All valid and expected element types are mentioned in corresponding value documentation, but for the special <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.Null" /> case which represents a <c>default(object)</c> and for which none of the value fields is set to anything.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeArgumentRecord.ValueUnion">
            <summary>
            Reserves a slot for storing the actual value of the attribute argument, of either type, depending on <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentRecord.ElementType" /> (see comments inside on the union members).
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.AttributeArgumentValueElementType">
            <summary>
            Types of attr arg values.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.Null">
            <summary>
            A <c>NULL</c> value (<c>default(object)</c>).
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.AttributeArgumentValueUnion">
            <summary>
            A storage slot for all possible value types for an attribute argument.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeArgumentValueUnion.StringValue">
            <summary>
            If <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.String" />, points to the string value of the argument. Otherwise, n/a.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeArgumentValueUnion.TypeValue">
            <summary>
            If <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.Type" />, points to the type value of the argument. Otherwise, n/a.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeArgumentValueUnion.PrimitiveValue">
            <summary>
            If <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.Bool" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.Char" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.I1" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.U1" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.I2" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.U2" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.I4" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.U4" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.I8" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.U8" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.R4" /> <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.R8" />, holds the literal integral value zero-extended to the QWORD size. Note that signed values are not sign-extended, and unused bytes will always be zero.
            Otherwise, n/a.
            Being the same size as the union structure, this can also serve as the raw value.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeArgumentValueUnion.ArrayItemsValue">
            <summary>
            If <see cref="F:JetBrains.Application.Table.Record.AttributeArgumentValueElementType.SzArray" />, this argument represents an array whose items are given by nested arguments pointed to by this range. Otherwise, n/a.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.AttributeArgumentValueUnion.System#IComparable{JetBrains#Application#Table#Record#AttributeArgumentValueUnion}#CompareTo(JetBrains.Application.Table.Record.AttributeArgumentValueUnion)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Record.AttributeArgumentValueUnion.System#IComparable#CompareTo(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Record.AttributeArgumentValueUnion.Equals(JetBrains.Application.Table.Record.AttributeArgumentValueUnion)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Record.AttributeArgumentValueUnion.Equals(System.Object)">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.Record.AttributeArgumentValueUnion.GetHashCode">
            <inheritdoc />
        </member>
        <member name="F:JetBrains.Application.Table.Record.AttributeRecord.ConstructorFormalParameterTypes">
            <summary>
            We now don't tell NULL from an empty range, so no way to get if the actual ctor is known right now. Probably, this will be discovered only at runtime.
            The order must match the order of formal parameters on the method declaration.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.Bitmask64">
            <summary>
            Wraps a bit mask, for type safety and neat presentation of this field in diag dumps
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.BlobTableHeader">
            <summary>
              <para>The BLOB table stores user-defined BLOBs, indexed by 128bit keys, each of them might be either a GUIDs (as they're of the same size), or a hash of the string key, obtained with <see cref="M:JetBrains.Application.Table.Record.StringRecordHeader.CalculateHash(System.String)" />.</para>
              <para>This is not a POD table. First comes this header, then an index which allows to look up BLOB body addresses, and then the BLOB bodies.</para>
              <para>The header is a single struct located at RVA zero, other entities have their RVAs explicitly defined (all to the table body start).</para>
              <para>For the index format, see comment on <see cref="T:JetBrains.Application.Table.Record.BlobTableIndexRecord" />. The BLOB bodies have no format or extra metadata besides the user-supplied bytes.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.BlobTableHeader.IndexRva">
            <summary>
            Points to the beginning of the memory space allocated for <see cref="T:JetBrains.Application.Table.Record.BlobTableIndexRecord" />, relatively to the table body start.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.BlobTableHeader.IndexHashHighestSetBit">
            <summary>
            The highest possibly used bit of the index hash, which gives the total allocated size of the index, in <see cref="T:JetBrains.Application.Table.Record.BlobTableIndexRecord" /> records. The number of records actually in use would be smaller.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.BlobTableIndexRecord">
            <summary>
              <para>Each record in the BLOB index hash table.</para>
              <para>The <see cref="F:JetBrains.Application.Table.Record.BlobTableHeader.IndexHashHighestSetBit" /> lower bits of the <see cref="F:JetBrains.Application.Table.Record.BlobTableIndexRecord.Identity" /> are used as the row index. In case of a collision, when lower bits of multiple identities match, it's resolved as a close hash table, by doing a quadratic proble with <c>hash + N*(N+1)/2</c>, which should eventually cover all possible indices for a modulo which is a power of 2.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.BlobTableIndexRecord.Identity">
            <summary>
              <para>The main and only identity of the BLOB.</para>
              <para>This can be either produced as a new GUID, or calculated as a hash <see cref="M:JetBrains.Application.Table.Record.StringRecordHeader.CalculateHash(System.String)" /> to some string name.</para>
              <para>The lower bits of this hash (<see cref="F:JetBrains.Application.Table.Record.BlobTableHeader.IndexHashHighestSetBit" /> of them) give the row number of the first record in the index matching the key.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.BlobTableIndexRecord.Flags">
            <summary>
            Flags, now only used to tell occupied index records.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.BlobTableIndexRecord.Note">
            <summary>
            Optional reference to a string which describes the <see cref="F:JetBrains.Application.Table.Record.BlobTableIndexRecord.Identity" /> (not the BLOB value). If the <see cref="F:JetBrains.Application.Table.Record.BlobTableIndexRecord.Identity" /> is a hash of some string key, would point to this key string.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.BlobTableIndexRecord.BodyRva">
            <summary>
            Points to the beginning of the BLOB body, relatively to the table body start.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.BlobTableIndexRecord.BodyCbSize">
            <summary>
            The BLOB body size, in bytes.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.BlobTableIndexRecordFlags.IsDefined">
            <summary>
            This record is actually defined (not an empty slot in a closed hash table).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.CatalogTablesFileHeader.CurrentFormatMark">
            <summary>
            <see cref="F:JetBrains.Application.Table.Record.CatalogTablesFileHeader.szFormatMark" />'s (1) current value we write (2) the only value we'd expect to see when loading for the format to be valid.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.CatalogTablesFileHeader.CurrentFormatRevision">
            <summary>
            <see cref="F:JetBrains.Application.Table.Record.CatalogTablesFileHeader.FormatRevision" />'s (1) current value we write  (2) the only value we'd expect to see when loading for the format to be valid.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.CatalogTablesFileHeader.szFormatMark">
            <summary>
            Beginning of the file, characters to idenfity the format. ASCII encoding.
            This should also include the major generational version of the format.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.CatalogTablesFileHeader.FormatRevision">
            <summary>
            Format revision. Changes with each format change. We'd only load exactly matching revisions.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.CatalogTablesFileHeader.TableRefsCount">
            <summary>
            The number of actual <see cref="T:JetBrains.Application.Table.Record.TableHeader" /> records immediately following this header.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.CatalogTablesFileHeader.WithFormat">
            <summary>
            Gets a struct copy with format marks all set.
            </summary>
            <returns></returns>
        </member>
        <member name="F:JetBrains.Application.Table.Record.MemberListRecord.AllPartMembersListRangeBlobName">
            <summary>
              <para>Name of the BLOB that holds the single <see cref="T:JetBrains.Application.Table.Record.RangeRef.MemberListRangeRef" /> object that points to the range in the <see cref="T:JetBrains.Application.Table.Record.MemberListRecord" /> table that gives the list of all Part members in this catalog. This list should be equivalent to a union of (non-intersecting) lists of part members in all cataloged assemblies in this catalog.</para>
              <para>In short, gives the <see cref="P:JetBrains.Application.Catalogs.PartCatalog.AllPartMembers" />, which optimizes the common operation.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.MemberRecord.ParameterTypes">
            <summary>
            The order must match the order of formal parameters on the method declaration.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.MemberTraitBankRecord">
            <summary>
            See desc for <see cref="T:JetBrains.Application.Table.Record.TypeTraitBankRecord" />, with the difference that this table has traits for <see cref="T:JetBrains.Application.Table.Record.MemberRecord" /> table rows instead of <see cref="T:JetBrains.Application.Table.Record.TypeRecord" /> table.
            The trait names themselves are shared with types and taken from the same <see cref="T:JetBrains.Application.Table.Record.TraitNameRecord" /> table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.MemberTraitBankRecord.Bitmask">
            <summary>
            64 bits of trait bitmask, for the current bank, for the <see cref="T:JetBrains.Application.Table.Record.TypeRecord" /> whose row index is the same as this record's, mod $(NumTypes).
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.RangeRef.ARangeRef">
            <summary>
            Anonymous range reference — a reference to a range of records in some table.
            The base implementation for all record range ref types.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.Record.RangeRef.ARangeRef.IsUndefined">
            <summary>
            If set to <see cref="P:JetBrains.Application.Table.Record.RangeRef.ARangeRef.Undefined" />.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.RangeRef.ARangeRef.CreateNullIfEmpty(System.Int32,System.Int32)">
            <summary>
            For zero-length ranges, returns a NULL value — to avoid FirstIndex values possibly pointing out of the table.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.Record.RangeRef.ARangeRef.Undefined">
            <summary>
            Means that we have no items, but it's because they are not known or have not been collected, unlike a NULL range which tells we know the items and there are zero of them.
            It is expected that callers do not need this information, and implementation SHOULD assert if they do read it.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.RangeRef.AssemblyListRangeRef">
            <summary>
            A reference to a range in the <see cref="T:JetBrains.Application.Table.Record.AssemblyListRecord" /> table.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.RangeRef.AttributeArgumentRangeRef">
            <summary>
            A range in the <see cref="T:JetBrains.Application.Table.Record.AttributeArgumentRecord" /> table.
            NOTE: unlike types, arguments only support contiguous ranges in the table, and there is no extra level of indirection.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.RangeRef.AttributeRangeRef">
            <summary>
            A reference to a range in the <see cref="T:JetBrains.Application.Table.Record.AttributeRecord" /> table.
            NOTE: unlike types, attributes only support contiguous ranges in the table, and there is no extra level of indirection.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.RangeRef.IRecordRangeRef">
            <summary>
            Means this type represents a record range reference.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.Record.RangeRef.IRecordRangeRef.Range">
            <summary>
            A copy of the value of the inner field which implements the range.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.Record.RangeRef.IRecordRangeRef.TargetRecordType">
            <summary>
            Type of the record this range references.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.RangeRef.IRecordRangeRef.GetEnumerator">
            <summary>
            Enumerates the indices in the range.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.RangeRef.MemberListRangeRef">
            <summary>
            A range in the <see cref="T:JetBrains.Application.Table.Record.MemberListRecord" /> table.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.RangeRef.RangeEnumerator">
            <summary>
            A non-allocating enumerator for ranges.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.RangeRef.TypeListRangeRef">
            <summary>
            A reference to a range in the <see cref="T:JetBrains.Application.Table.Record.TypeListRecord" /> table.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.Ref.ARef">
            <summary>
            Anonymous record reference — a reference to a record in some table, by index.
            The base implementation for all record ref types.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.Ref.IRecordRef">
            <summary>
            Means this type represents a record reference.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.Record.Ref.IRecordRef.Ref">
            <summary>
            A copy of the value of the inner field which implements the reference.
            </summary>
        </member>
        <member name="P:JetBrains.Application.Table.Record.Ref.IRecordRef.TargetRecordType">
            <summary>
            Type of the referenced record.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.Ref.StringRef">
            <summary>
            A special case: reference to non-POD table.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.StringRecordHeader">
            <summary>
            The string table holds variable-sized records, and references to this table have RVAs rather than indices.
            This header starts each record. It is immediately followed with UTF-16LE bytes of the string's characters, zero-terminated (ready for use in the runtime). NOTE that the string content length (in chars) in <see cref="F:JetBrains.Application.Table.Record.StringRecordHeader.CchLength"/> does NOT include the terminating zero, which is still written, so the data length is one word larger.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.StringRecordHeader.Hash">
            <summary>
            The hash of the string content, not counting the trailing zero.
            MUST always be the same hashing algorithm, Murmur3 128-bit x86 version.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.StringRecordHeader.CchLength">
            <summary>
            Length of the string, in chars, not including the terminating zero (which must also be written).
            Could have been a WORD, but that would have spoiled the padding (.NET has all the strings padded at a DWORD, let's keep the vibe).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.StringRecordHeader.MagicBom">
            <summary>
            UTF-16LE BOM, as a magic marker of the string start.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.StringRecordHeader.MagicBomValue">
            <summary>
            UTF16-LE BOM.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.StringRecordHeader.#ctor(JetBrains.Util.Maths.OWORD,System.UInt32)">
            <summary>
            Offset from struct start to the first character of the actual string, in bytes.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.StringRecordHeader.CalculateHash(System.String)">
            <summary>
            Calculates the stable hash for the string, in the format used in the Catalog Tables: MurmurHash3, 128bit-output, x86-cpu version.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.TableHeader">
            <summary>
            Header for a table.
            Might be a POD table, which is a regular array of POD structure records; or a custom table, for which only the size is known. See POD-specific fields to tell a POD table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TableHeader.rva">
            <summary>
            Rva to the table in the binary data.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TableHeader.cbSize">
            <summary>
            Byte size of the whole table.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TableHeader.wszTableName">
            <summary>
            Name of the table. The tables are told apart by this identifier rather than by their order in the file. Must be unique in the tables list.
            For a POD table, should be related to <see cref="F:JetBrains.Application.Table.Record.TableHeader.wszPodTableRecordTypeAqn" /> (usually, a part of the type local name).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TableHeader.wszPodTableRecordTypeAqn">
            <summary>
            For a POD table which is an array of same-sized POD sturctures, AQN of the type which describes each record. Otherwise, an empty string.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TableHeader.cbPodTableRecordSize">
            <summary>
            For a POD table which is an array of same-sized POD sturctures, the size of a record in the table. Otherwise, zero.
            <see cref="F:JetBrains.Application.Table.Record.TableHeader.cbSize" /> must be a multiple of this value.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.SetCustomTable(JetBrains.Application.Table.Record.TableHeader@,System.Int64,System.Int64,System.String)">
            <summary>
            Base case for all tables, and all that we have to say for a non-POD custom table.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.FromCustomTableWithoutPlacement(System.String,System.Int64)">
            <summary>
            Custom table case.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.FromPodTableWithoutPlacement``1(System.ReadOnlyMemory{System.Byte})">
            <summary>
            POD table case.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.FromPodTableWithoutPlacement``1(System.ReadOnlySpan{System.Byte})">
            <summary>
            POD table case.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.FromPodTableWithoutPlacement``1(System.Int32)">
            <summary>
            POD table case.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.SetPodTable(JetBrains.Application.Table.Record.TableHeader@,System.Int64,System.Int64,System.String,System.String,System.Int32)">
            <summary>
            POD table case.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.TableNameEquals(System.String)">
            <summary>
            Does the check against the native string, without allocations.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.TableNameAsSpan``1(System.ReadOnlySpan{``0})">
            <summary>
            Gets a non-allocating span with the table name.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.CreateTableNameString">
            <summary>
            Allocates a runtime string for the table name. Must not be used on the main production track, for secondary scenarios like dumping only.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.CreatePodTableRecordTypeAqn(System.ReadOnlyMemory{System.Byte})">
            <summary>
            Allocates a runtime string for the PodTableRecordTypeAqn. Must not be used on the main production track, for secondary scenarios like dumping only.
            </summary>
            <param name="memory"></param>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.GetPodTableNameFromRecordType``1">
            <summary>
            The rul for naming POD tables after their record type class.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.Record.TableHeader.GetPodTableNameFromRecordType(System.Type)">
            <summary>
            The rul for naming POD tables after their record type class.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.TraitNameRecord">
            <summary>
            This table lists trait names.
            The records MUST be sorted by the string hashes, see <see cref="F:JetBrains.Application.Table.Record.StringRecordHeader.Hash" />. This allows for fast lookup when mapping trait names into bitmasks for this specific catalog.
            The row index of a certain trait gives its bitmask location in the <see cref="T:JetBrains.Application.Table.Record.TypeTraitBankRecord" /> or <see cref="T:JetBrains.Application.Table.Record.MemberTraitBankRecord"/> table: the bank number is (row div 64), and the bit number is (row mod 64).
            See <see cref="T:JetBrains.Application.Table.Record.TypeTraitBankRecord" />, <see cref="T:JetBrains.Application.Table.Record.MemberTraitBankRecord" /> for more details.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TypeListRecord.AllPartTypesListRangeBlobName">
            <summary>
              <para>Name of the BLOB that holds the single <see cref="T:JetBrains.Application.Table.Record.RangeRef.TypeListRangeRef" /> object that points to the range in the <see cref="T:JetBrains.Application.Table.Record.TypeListRecord" /> table that gives the list of all Part types in this catalog. This list should be equivalent to a union of (non-intersecting) lists of part types in all cataloged assemblies in this catalog.</para>
              <para>In short, gives the <see cref="P:JetBrains.Application.Catalogs.PartCatalog.AllPartTypes" />, which optimizes the common operation.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TypeRecord.Attributes">
            <summary>
            <para>Cataloging MIGHT skip collecting this information for secondary (non-cataloged) types for better perf, lesser table size, and less assembly resolve errors. This MIGHT be denoted with a special range ref <see cref="P:JetBrains.Application.Table.Record.RangeRef.ARangeRef.Undefined"/> (as opposed to NULL range ref). Part catalog SHOULD assert on such ranges and report attempted enumeration on unavailable data, but technically this is still an empty range.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TypeRecord.BaseTypes">
            <summary>
            <para>Base types, including classes and interfaces, transitively collected, excluding well-knowns like Object and ValueType.</para>
            <para>Order is undefined.</para>
            <para>Cataloging MIGHT skip collecting this information for secondary (non-cataloged) types for better perf, lesser table size, and less assembly resolve errors. This MIGHT be denoted with a special range ref <see cref="P:JetBrains.Application.Table.Record.RangeRef.ARangeRef.Undefined"/> (as opposed to NULL range ref). Part catalog SHOULD assert on such ranges and report attempted enumeration on unavailable data, but technically this is still an empty range.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TypeRecord.ExtraTypes">
            <summary>
            <para>Meaning depends on the <see cref="F:JetBrains.Application.Table.Record.TypeRecord.TypeKind" />: either generic actual parameters, or array item type, or reference target type, or nothing for a regular type.</para>
            <para>Ordering is important (e.g. to match generic actual parameters to the formal parameters).</para>
            <para>This MUST be filled on any type, cataloged or not, because this is a part of the type's identity.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TypeRecord.MetadataToken">
            <summary>
              <para>For a type in a part-assembly (with <see cref="F:JetBrains.Application.Table.Record.AssemblyRecordFlags.IsCatalogedAssembly" /> flag), stores the metadata token in the original assembly for faster lookup. The assembly MVID is validated upon loading the catalog to make sure that it has not been recompiled, so the tokens should match.</para>
              <para>Why not for types from other assemblies (e.g. referenced types from system assemblies): catalog is valid only for bitwise identical cataloged assemblies, while referenceed assemblies are allowed to differ and thus have different token values.</para>
              <para>Why not for part types (cataloged types) only: there're lots of non-part-types like base types of part types for which there're frequent type checks, so we want to have tokens for as many types as it's safe to have.</para>
              <para>In either case, a value of <c>0</c> means that the token has not been defined.</para>
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TypeRecord.Members">
            <summary>
            <para>A subset of members of this type:</para>
            <para>• Only fields, properties, and methods (incl ctors), not nested types.</para>
            <para>• Included if they have a part attribute on them.</para>
            <para>• Included if they are enum value fields.</para>
            <para>• Included if they are a ctor on a catalogable type.</para>
            <para>• Skipped in most other cases.</para>
            <para>Cataloging MIGHT skip collecting this information for secondary (non-cataloged) types for better perf, lesser table size, and less assembly resolve errors. This MIGHT be denoted with a special range ref <see cref="P:JetBrains.Application.Table.Record.RangeRef.ARangeRef.Undefined"/> (as opposed to NULL range ref). Part catalog SHOULD assert on such ranges and report attempted enumeration on unavailable data, but technically this is still an empty range.</para>
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.Record.TypeTraitBankRecord">
            <summary>
            Each trait is a named feature which an entity in this catalog (e.g. <see cref="T:JetBrains.Application.Table.Record.TypeRecord" />) either has or not.
            The list of ALL known trait names for this catalog is stored in the <see cref="T:JetBrains.Application.Table.Record.TraitNameRecord" /> table.
            Their order is important, and they're sorted by their string name hashes (<see cref="F:JetBrains.Application.Table.Record.StringRecordHeader.Hash" />).
            Traits for types are stored in the <see cref="T:JetBrains.Application.Table.Record.TypeTraitBankRecord" /> table as bit masks: each type has bits for all known traits in this catalog.
            For each <see cref="T:JetBrains.Application.Table.Record.TypeRecord" /> in this catalog, <see cref="T:JetBrains.Application.Table.Record.TypeTraitBankRecord" /> has enough banks to store bits for all known traits listed in <see cref="T:JetBrains.Application.Table.Record.TraitNameRecord" />.
            As each mask bank is 64-bit, the number of banks is NumBank = Ceil(NumKnownTraits) / 64).
            As a result, <see cref="T:JetBrains.Application.Table.Record.TypeRecord" /> must have NumTypeRecords*NumBanks records.
            The structure is as follows: first, NumBanks records for the <see cref="T:JetBrains.Application.Table.Record.TypeRecord" /> with index 0, then NumBanks masks for type #1, and so on.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.Record.TypeTraitBankRecord.Bitmask">
            <summary>
            64 bits of trait bitmask, for the current bank, for the <see cref="T:JetBrains.Application.Table.Record.TypeRecord" /> whose row index is the same as this record's, mod $(NumTypes).
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.myAttributeTypeSkipList">
            <summary>
            Caches tokens of attribute types which cannot match the requested user attribute type and should be skipped from checking, e.g. PartAttribute itself, Attribute, etc.
            NOTE: only tokens from our own <see cref="F:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.myStorage" /> are stored, and only such should be checked. When running in table group mode, tokens from other tables shan't take part in this, because they are not unique.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.myFilter">
            <summary>
            Lazy-calculates the filter data for filtering operations: status, masks for operations optimized with traits, and custom filters which do not support traits.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.Tables">
            <summary>
            Shortcut access to tables in the storage.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.AssessFilterStatus(System.ValueTuple{JetBrains.Application.Table.CatalogTables,JetBrains.Application.Catalogs.Filtering.IPartCatalogFilter})">
            <summary>
            Chooses the filtering scenario the first time we try to use filters.
            We could always get all types and apply the filter AS IS, but using traits in supported cases might improve performance a lot.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.GetAttributeTypeSkipList(JetBrains.Application.Catalogs.PartCatalogType)">
            <summary>
            Caches tokens of attribute types which cannot match the requested user attribute type and should be skipped from checking, e.g. PartAttribute itself, Attribute, etc.
            Called only once to lazy-fill the list.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.CollectionFlags.IsFiltering">
            <summary>
            Applies to filtered collections only (types and members). Means that trait filter based on the storage's traits should be applied.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.CollectionFlags.IsOwnTypesOnly">
            <summary>
            Applies to types only. If <c>True</c>, we're only expecting types from our own catalog upon enumeration. Otherwise we should look up the parent group for type translation.
            This does not apply to members because they are never spanning different catalogs in the group.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.CollectionPodData">
            <summary>
            Universal POD data for default collection types.
            </summary>
        </member>
        <member name="T:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.EnumeratorPodData">
            <summary>
            Universal POD data for default enumerator types.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.TablePartCatalogCollectionSourceOwner.EnumeratorPodData.Current">
            <summary>
            The current index, if positioned on a valid element.
            <c>-1</c> if before first. <see cref="F:System.Int32.MaxValue" /> if after last.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogGroupStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#AssemblyGetPartMembers(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <inheritdoc />
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogGroupStorage.GetMapAssemblyToStorage">
            <summary>
            Lazy-fills the mapping.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogGroupStorage.GetPrimaryPartCatalogAssembly(JetBrains.Application.Catalogs.PartCatalogAssembly)">
            <summary>
            A part assembly might reference part assemblies from other catalogs, in which case a copy of it will be embedded into the catalog tables even if the assembly does not belong to the catalog.
            This method looks up the primary assembly (from the catalog to which it belongs as a part assembly), to make sure all customers use only up-to-date primary assemblies with their types, attrs, etc.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogGroupStorage.GetPrimaryPartCatalogType(JetBrains.Application.Catalogs.PartCatalogType)">
            <summary>
            A part type might reference part types from other assemblies, in which case a copy of it will be embedded into the catalog tables even if the assembly does not belong to the catalog.
            This method looks up the primary type (from the catalog to which it belongs as a part of a cataloged assembly), to make sure all customers use only up-to-date primary types.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogGroupStorage.JetBrains#Application#Catalogs#IPartCatalogStorage#GlobalGetAllPartMembers">
            <inheritdoc />
        </member>
        <member name="F:JetBrains.Application.Table.TablePartCatalogStorage.myCollectionSourceOwner">
            <summary>
            Manages virtual collections with direct access to the tables.
            </summary>
        </member>
        <member name="F:JetBrains.Application.Table.TablePartCatalogStorage.myFilter">
            <summary>
            The original filter for this catalog.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogStorage.GetPartAssembly(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogAssemblyToken})">
            <summary>
            When opening a group of catalog tables together, routes related assemblies to the appropriate catalog table storage.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogStorage.GetPartType(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken})">
            <summary>
            When opening a group of catalog tables together, routes related types to the appropriate catalog table storage.
            </summary>
        </member>
        <member name="M:JetBrains.Application.Table.TablePartCatalogStorage.TypeEqualsRuntimeType_NamesCheck(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken},System.Type)">
            <summary>
            Slow route of the <see cref="M:JetBrains.Application.Table.TablePartCatalogStorage.TypeEqualsRuntimeType(JetBrains.Util.dataStructures.TypedIntrinsics.Int32{JetBrains.Application.Catalogs.CatalogTypeToken},System.Type)" />.
            </summary>
        </member>
    </members>
</doc>
