Header menu logo F# Compiler Guide

IL Module

The "unlinked" view of .NET metadata and code. Central to the Abstract IL library

Types

Type Description

ILArgConvention

ILArrayShape

ILAssemblyLongevity

ILAssemblyManifest

The main module of an assembly is a module plus some manifest information.

ILAssemblyRef

ILAttribElem

ILAttribute

Custom attribute.

ILAttributes

ILAttributesStored

Represents the efficiency-oriented storage of ILAttributes in another item.

ILCallingConv

ILCallingSignature

ILDebugImport

Defines an opened namespace, type relevant to a code location. Emitted to the PortablePDB format. Note the format supports additional variations on imported things that are not yet emitted in F#.

ILDebugImports

Defines a set of opened namespace, type relevant to a code location. Emitted to the PortablePDB format.

ILDefaultPInvokeEncoding

Default Unicode encoding for P/Invoke within a type.

ILEventDef

Event definitions.

ILEventDefs

Table of those events in a type definition.

ILExportedTypeOrForwarder

these are only found in the ILExportedTypesAndForwarders table in the manifest

ILExportedTypesAndForwarders

ILFieldDef

Field definitions.

ILFieldDefs

Tables of fields. Logically equivalent to a list of fields but the table is kept in a form to allow efficient looking up fields by name.

ILFieldInit

Field Init

ILFieldRef

Formal identities of fields.

ILFieldSpec

Field specs. The data given for a ldfld, stfld etc. instruction.

ILGenericParameterDef

Generic parameters. Formal generic parameter declarations may include the bounds, if any, on the generic parameter.

ILGenericVariance

ILGuid

Represents guids

ILMemberAccess

Member Access

ILMethodDef

IL Method definitions.

ILMethodDefs

Tables of methods. Logically equivalent to a list of methods but the table is kept in a form optimized for looking up methods by name and arity.

ILMethodImplDef

Method Impls

ILMethodImplDefs

ILMethodRef

Formal identities of methods.

ILMethodSpec

The information at the callsite of a method

ILModuleDef

One module in the "current" assembly, either a main-module or an auxiliary module. The main module will have a manifest. An assembly is built by joining together a "main" module plus several auxiliary modules.

ILModuleRef

ILNativeResource

ILNativeType

Native Types, for marshalling to the native C interface. These are taken directly from the ILASM syntax. Most of these are listed in the CLI ECMA-335 Spec (Partition II, 7.4).

ILNestedExportedType

"Classes Elsewhere" - classes in auxiliary modules. Manifests include declarations for all the classes in an assembly, regardless of which module they are in. The ".class extern" construct describes so-called exported types -- these are public classes defined in the auxiliary modules of this assembly, i.e. modules other than the manifest-carrying module. For example, if you have a two-module assembly (A.DLL and B.DLL), and the manifest resides in the A.DLL, then in the manifest all the public classes declared in B.DLL should be defined as exported types, i.e., as ".class extern". The public classes defined in A.DLL should not be defined as ".class extern" -- they are already available in the manifest-carrying module. The union of all public classes defined in the manifest-carrying module and all exported types defined there is the set of all classes exposed by this assembly. Thus, by analysing the metadata of the manifest-carrying module of an assembly, you can identify all the classes exposed by this assembly, and where to find them. Nested classes found in external modules should also be located in this table, suitably nested inside another "ILExportedTypeOrForwarder" definition. these are only found in the "Nested" field of ILExportedTypeOrForwarder objects

ILNestedExportedTypes

ILParameter

Method parameters and return values.

ILPlatform

ILPreTypeDef

Represents a prefix of information for ILTypeDef. The information is enough to perform name resolution for the F# compiler, probe attributes for ExtensionAttribute etc. This is key to the on-demand exploration of .NET metadata. This information has to be "Goldilocks" - not too much, not too little, just right.

ILPropertyDef

Property definitions

ILPropertyDefs

Table of properties in an IL type definition.

ILReferences

ILResources

Table of resources in a module.

ILReturn

Method return values.

ILScopeRef

ILSecurityDeclsStored

Represents the efficiency-oriented storage of ILSecurityDecls in another item.

ILSourceDocument

Debug info. Values of type "source" can be attached at sequence points and some other locations.

ILThisConvention

ILType

ILTypeDef

Represents IL Type Definitions.

ILTypeDefAccess

Type Access.

ILTypeDefKind

A categorization of type definitions into "kinds"

ILTypeDefLayout

Type Layout information.

ILTypeDefs

Tables of named type definitions.

ILTypeInit

Indicate the initialization semantics of a type.

ILTypeRef

Type refs, i.e. references to types in some .NET assembly

ILTypeSpec

Type specs and types.

ILVersionInfo

MethodBody

PublicKey

Functions and values

Function or value Description

NoMetadataIdx

Full Usage: NoMetadataIdx

Returns: int32
Returns: int32

emptyILCustomAttrs

Full Usage: emptyILCustomAttrs

Returns: ILAttributes
Returns: ILAttributes

emptyILEvents

Full Usage: emptyILEvents

Returns: ILEventDefs
Returns: ILEventDefs

emptyILFields

Full Usage: emptyILFields

Returns: ILFieldDefs
Returns: ILFieldDefs

emptyILMethodImpls

Full Usage: emptyILMethodImpls

Returns: ILMethodImplDefs

emptyILMethods

Full Usage: emptyILMethods

Returns: ILMethodDefs
Returns: ILMethodDefs

emptyILProperties

Full Usage: emptyILProperties

Returns: ILPropertyDefs
Returns: ILPropertyDefs

emptyILResources

Full Usage: emptyILResources

Returns: ILResources
Returns: ILResources

emptyILSecurityDecls

Full Usage: emptyILSecurityDecls

Returns: ILSecurityDecls

emptyILTypeDefs

Full Usage: emptyILTypeDefs

Returns: ILTypeDefs
Returns: ILTypeDefs

mkILCustomAttrs arg1

Full Usage: mkILCustomAttrs arg1

Parameters:
Returns: ILAttributes

Making tables of custom attributes, etc.

arg0 : ILAttribute list
Returns: ILAttributes

mkILCustomAttrsFromArray arg1

Full Usage: mkILCustomAttrsFromArray arg1

Parameters:
Returns: ILAttributes
arg0 : ILAttribute[]
Returns: ILAttributes

mkILEvents arg1

Full Usage: mkILEvents arg1

Parameters:
Returns: ILEventDefs
arg0 : ILEventDef list
Returns: ILEventDefs

mkILEventsLazy arg1

Full Usage: mkILEventsLazy arg1

Parameters:
Returns: ILEventDefs

mkILExportedTypes arg1

Full Usage: mkILExportedTypes arg1

Parameters:
Returns: ILExportedTypesAndForwarders

mkILFields arg1

Full Usage: mkILFields arg1

Parameters:
Returns: ILFieldDefs
arg0 : ILFieldDef list
Returns: ILFieldDefs

mkILFieldsLazy arg1

Full Usage: mkILFieldsLazy arg1

Parameters:
Returns: ILFieldDefs

mkILMethodImpls arg1

Full Usage: mkILMethodImpls arg1

Parameters:
Returns: ILMethodImplDefs
arg0 : ILMethodImplDef list
Returns: ILMethodImplDefs

mkILMethodImplsLazy arg1

Full Usage: mkILMethodImplsLazy arg1

Parameters:
Returns: ILMethodImplDefs
arg0 : Lazy<ILMethodImplDef list>
Returns: ILMethodImplDefs

mkILMethods arg1

Full Usage: mkILMethods arg1

Parameters:
Returns: ILMethodDefs
arg0 : ILMethodDef list
Returns: ILMethodDefs

mkILMethodsComputed arg1

Full Usage: mkILMethodsComputed arg1

Parameters:
Returns: ILMethodDefs
arg0 : unit -> ILMethodDef[]
Returns: ILMethodDefs

mkILMethodsFromArray arg1

Full Usage: mkILMethodsFromArray arg1

Parameters:
Returns: ILMethodDefs
arg0 : ILMethodDef[]
Returns: ILMethodDefs

mkILNestedExportedTypes arg1

Full Usage: mkILNestedExportedTypes arg1

Parameters:
Returns: ILNestedExportedTypes

mkILProperties arg1

Full Usage: mkILProperties arg1

Parameters:
Returns: ILPropertyDefs
arg0 : ILPropertyDef list
Returns: ILPropertyDefs

mkILPropertiesLazy arg1

Full Usage: mkILPropertiesLazy arg1

Parameters:
Returns: ILPropertyDefs

mkILReturn arg1

Full Usage: mkILReturn arg1

Parameters:
Returns: ILReturn
arg0 : ILType
Returns: ILReturn

mkILSecurityDecls arg1

Full Usage: mkILSecurityDecls arg1

Parameters:
Returns: ILSecurityDecls
arg0 : ILSecurityDecl list
Returns: ILSecurityDecls

mkILSimpleModule assemblyName moduleName dll subsystemVersion useHighEntropyVA arg6 arg7 arg8 arg9 arg10 arg11

Full Usage: mkILSimpleModule assemblyName moduleName dll subsystemVersion useHighEntropyVA arg6 arg7 arg8 arg9 arg10 arg11

Parameters:
    assemblyName : string
    moduleName : string
    dll : bool
    subsystemVersion : int * int
    useHighEntropyVA : bool
    arg5 : ILTypeDefs
    arg6 : int32 option
    arg7 : string option
    arg8 : int
    arg9 : ILExportedTypesAndForwarders
    arg10 : string

Returns: ILModuleDef

Making modules.

assemblyName : string
moduleName : string
dll : bool
subsystemVersion : int * int
useHighEntropyVA : bool
arg5 : ILTypeDefs
arg6 : int32 option
arg7 : string option
arg8 : int
arg9 : ILExportedTypesAndForwarders
arg10 : string
Returns: ILModuleDef

mkILTypeDefs arg1

Full Usage: mkILTypeDefs arg1

Parameters:
Returns: ILTypeDefs
arg0 : ILTypeDef list
Returns: ILTypeDefs

mkILTypeDefsComputed arg1

Full Usage: mkILTypeDefsComputed arg1

Parameters:
Returns: ILTypeDefs

Create table of types which is loaded/computed on-demand, and whose individual elements are also loaded/computed on-demand. Any call to tdefs.AsList will result in the laziness being forced. Operations can examine the custom attributes and name of each type in order to decide whether to proceed with examining the other details of the type. Note that individual type definitions may contain further delays in their method, field and other tables.

arg0 : unit -> ILPreTypeDef[]
Returns: ILTypeDefs

mkILTypeDefsFromArray arg1

Full Usage: mkILTypeDefsFromArray arg1

Parameters:
Returns: ILTypeDefs
arg0 : ILTypeDef[]
Returns: ILTypeDefs

storeILCustomAttrs arg1

Full Usage: storeILCustomAttrs arg1

Parameters:
Returns: ILAttributesStored

storeILSecurityDecls arg1

Full Usage: storeILSecurityDecls arg1

Parameters:
Returns: ILSecurityDeclsStored

Type something to start searching.