Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@
* Direct delegate construction ([PR ##19993](https://github.com/dotnet/fsharp/pull/19993))
* IL: add `ILPreNamespace`, make `ILPreTypeDef` creation lazy ([PR #20092](https://github.com/dotnet/fsharp/pull/20092))
* IL: share ILCallingConv instances ([PR #20254](https://github.com/dotnet/fsharp/pull/20254))
* IL: cache the ILTypeRef of a type def ([PR #20259](https://github.com/dotnet/fsharp/pull/20259))
* IL: use empty tables for members when possible ([PR #20249](https://github.com/dotnet/fsharp/pull/20249))
* Make Entity's adhoc members list lazy ([PR #20286](https://github.com/dotnet/fsharp/pull/20286/changes))

Expand Down
9 changes: 8 additions & 1 deletion src/Compiler/AbstractIL/ilread.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1141,6 +1141,7 @@ type ILMetadataReader =
seekReadMemberRefAsFieldSpec: MemberRefAsFspecIdx -> ILFieldSpec
seekReadCustomAttr: CustomAttrIdx -> ILAttribute
seekReadTypeRef: int -> ILTypeRef
seekReadTypeDefAsTypeRef: int -> ILTypeRef
seekReadTypeRefAsType: TypeRefAsTypIdx -> ILType
readBlobHeapAsPropertySig: BlobAsPropSigIdx -> ILThisConvention * ILType * ILTypes
readBlobHeapAsFieldSig: BlobAsFieldSigIdx -> ILType
Expand Down Expand Up @@ -2360,7 +2361,10 @@ and seekReadTypeDefAsTypeUncached ctxtH (TypeDefAsTypIdx(boxity, ginst, idx)) =
let ctxt = getHole ctxtH
mkILTy boxity (ILTypeSpec.Create(seekReadTypeDefAsTypeRef ctxt idx, ginst))

and seekReadTypeDefAsTypeRef (ctxt: ILMetadataReader) idx =
and seekReadTypeDefAsTypeRef (ctxt: ILMetadataReader) idx = ctxt.seekReadTypeDefAsTypeRef idx

and seekReadTypeDefAsTypeRefUncached ctxtH idx =
let (ctxt: ILMetadataReader) = getHole ctxtH
let mdv = ctxt.mdfile.GetView()

let enc =
Expand Down Expand Up @@ -4512,6 +4516,8 @@ let openMetadataReader
let cacheTypeDefAsType =
mkCacheGeneric reduceMemoryUsage inbase "TypeDefAsType" (getNumRows TableNames.TypeDef / 20 + 1)

let cacheTypeDefAsTypeRef = mkCacheGeneric false inbase "TypeDefAsTypeRef" 0

let cacheMethodDefAsMethodData =
mkCacheGeneric reduceMemoryUsage inbase "MethodDefAsMethodData" (getNumRows TableNames.Method / 20 + 1)

Expand Down Expand Up @@ -4583,6 +4589,7 @@ let openMetadataReader
seekReadMemberRefAsFieldSpec = seekReadMemberRefAsFieldSpecUncached ctxtH
seekReadCustomAttr = cacheCustomAttr (seekReadCustomAttrUncached ctxtH)
seekReadTypeRef = cacheTypeRef (seekReadTypeRefUncached ctxtH)
seekReadTypeDefAsTypeRef = cacheTypeDefAsTypeRef (seekReadTypeDefAsTypeRefUncached ctxtH)
readBlobHeapAsPropertySig = cacheBlobHeapAsPropertySig (readBlobHeapAsPropertySigUncached ctxtH)
readBlobHeapAsFieldSig = cacheBlobHeapAsFieldSig (readBlobHeapAsFieldSigUncached ctxtH)
readBlobHeapAsMethodSig = cacheBlobHeapAsMethodSig (readBlobHeapAsMethodSigUncached ctxtH)
Expand Down
Loading