Skip to content

Commit f77e5df

Browse files
committed
wip
1 parent ccccab9 commit f77e5df

File tree

1 file changed

+26
-21
lines changed

1 file changed

+26
-21
lines changed

src/Compiler/AbstractIL/ilread.fs

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1425,16 +1425,10 @@ let seekReadParamRow (ctxt: ILMetadataReader) mdv idx =
14251425
(flags, seq, nameIdx)
14261426

14271427
/// Read Table InterfaceImpl.
1428-
let private seekReadInterfaceImplRow (ctxt: ILMetadataReader) mdv idx =
1428+
let private seekReadInterfaceIdx (ctxt: ILMetadataReader) mdv idx =
14291429
let mutable addr = ctxt.rowAddr TableNames.InterfaceImpl idx
1430-
let tidx = seekReadUntaggedIdx TableNames.TypeDef ctxt mdv &addr
1431-
let intfIdx = seekReadTypeDefOrRefOrSpecIdx ctxt mdv &addr
1432-
1433-
struct {|
1434-
TypeIdx = tidx
1435-
IntfIdx = intfIdx
1436-
IntImplIdx = idx
1437-
|}
1430+
let _tidx = seekReadUntaggedIdx TableNames.TypeDef ctxt mdv &addr
1431+
seekReadTypeDefOrRefOrSpecIdx ctxt mdv &addr
14381432

14391433
/// Read Table MemberRef.
14401434
let seekReadMemberRefRow (ctxt: ILMetadataReader) mdv idx =
@@ -1653,11 +1647,11 @@ let seekReadGenericParamRow (ctxt: ILMetadataReader) mdv idx =
16531647
(idx, seq, flags, ownerIdx, nameIdx)
16541648

16551649
// Read Table GenericParamConstraint.
1656-
let seekReadGenericParamConstraintRow (ctxt: ILMetadataReader) mdv idx =
1650+
let seekReadGenericParamConstraintIdx (ctxt: ILMetadataReader) mdv idx =
16571651
let mutable addr = ctxt.rowAddr TableNames.GenericParamConstraint idx
1658-
let pidx = seekReadUntaggedIdx TableNames.GenericParam ctxt mdv &addr
1652+
let _pidx = seekReadUntaggedIdx TableNames.GenericParam ctxt mdv &addr
16591653
let constraintIdx = seekReadTypeDefOrRefOrSpecIdx ctxt mdv &addr
1660-
(pidx, constraintIdx)
1654+
constraintIdx
16611655

16621656
/// Read Table ILMethodSpec.
16631657
let seekReadMethodSpecRow (ctxt: ILMetadataReader) mdv idx =
@@ -2248,11 +2242,16 @@ and seekReadNestedTypeDefs (ctxt: ILMetadataReader) tidx =
22482242
and seekReadInterfaceImpls (ctxt: ILMetadataReader) mdv numTypars tidx =
22492243
seekReadIndexedRows (
22502244
ctxt.getNumRows TableNames.InterfaceImpl,
2251-
seekReadInterfaceImplRow ctxt mdv,
2252-
(fun x -> x.TypeIdx),
2253-
simpleIndexCompare tidx,
2245+
id,
2246+
id,
2247+
(fun idx ->
2248+
let mutable addr = ctxt.rowAddr TableNames.InterfaceImpl idx
2249+
let _tidx = seekReadUntaggedIdx TableNames.TypeDef ctxt mdv &addr
2250+
simpleIndexCompare tidx _tidx),
22542251
isSorted ctxt TableNames.InterfaceImpl,
2255-
(fun x -> (seekReadTypeDefOrRef ctxt numTypars AsObject [] x.IntfIdx), (ctxt.customAttrsReader_InterfaceImpl, x.IntImplIdx))
2252+
(fun idx ->
2253+
let intfIdx = seekReadInterfaceIdx ctxt mdv idx
2254+
seekReadTypeDefOrRef ctxt numTypars AsObject [] intfIdx, (ctxt.customAttrsReader_InterfaceImpl, idx))
22562255
)
22572256

22582257
and seekReadGenericParams ctxt numTypars (a, b) : ILGenericParameterDefs =
@@ -2262,12 +2261,13 @@ and seekReadGenericParamsUncached ctxtH (GenericParamsIdx(numTypars, a, b)) =
22622261
let (ctxt: ILMetadataReader) = getHole ctxtH
22632262
let mdv = ctxt.mdfile.GetView()
22642263

2264+
let key = TaggedIndex(a, b)
22652265
let pars =
22662266
seekReadIndexedRows (
22672267
ctxt.getNumRows TableNames.GenericParam,
22682268
seekReadGenericParamRow ctxt mdv,
22692269
(fun (_, _, _, tomd, _) -> tomd),
2270-
tomdCompare (TaggedIndex(a, b)),
2270+
tomdCompare key,
22712271
isSorted ctxt TableNames.GenericParam,
22722272
(fun (gpidx, seq, flags, _, nameIdx) ->
22732273
let flags = int32 flags
@@ -2299,11 +2299,16 @@ and seekReadGenericParamsUncached ctxtH (GenericParamsIdx(numTypars, a, b)) =
22992299
and seekReadGenericParamConstraints (ctxt: ILMetadataReader) mdv numTypars gpidx =
23002300
seekReadIndexedRows (
23012301
ctxt.getNumRows TableNames.GenericParamConstraint,
2302-
seekReadGenericParamConstraintRow ctxt mdv,
2303-
fst,
2304-
simpleIndexCompare gpidx,
2302+
id,
2303+
id,
2304+
(fun idx ->
2305+
let mutable addr = ctxt.rowAddr TableNames.GenericParamConstraint idx
2306+
let pidx = seekReadUntaggedIdx TableNames.GenericParam ctxt mdv &addr
2307+
simpleIndexCompare gpidx pidx),
23052308
isSorted ctxt TableNames.GenericParamConstraint,
2306-
(snd >> seekReadTypeDefOrRef ctxt numTypars AsObject [])
2309+
(fun idx ->
2310+
let constraintIdx = seekReadGenericParamConstraintIdx ctxt mdv idx
2311+
seekReadTypeDefOrRef ctxt numTypars AsObject [] constraintIdx)
23072312
)
23082313

23092314
and seekReadTypeDefAsType (ctxt: ILMetadataReader) boxity (ginst: ILTypes) idx =

0 commit comments

Comments
 (0)