diff --git a/src/Compiler/AbstractIL/ilread.fs b/src/Compiler/AbstractIL/ilread.fs index 0ccdd9cf35c..4cacdafc9ed 100644 --- a/src/Compiler/AbstractIL/ilread.fs +++ b/src/Compiler/AbstractIL/ilread.fs @@ -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 @@ -2334,7 +2335,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 = @@ -4504,6 +4508,9 @@ 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) @@ -4575,6 +4582,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)