@@ -54,6 +54,14 @@ type PrimaryAssembly =
5454 | System_ Runtime -> " System.Runtime"
5555 | NetStandard -> " netstandard"
5656
57+ static member IsPossiblePrimaryAssembly ( fileName : string ) =
58+ let name = System.IO.Path.GetFileNameWithoutExtension( fileName)
59+
60+ String.Compare( name, " mscorlib" , true ) <> 0
61+ || String.Compare( name, " System.Runtime" , true ) <> 0
62+ || String.Compare( name, " netstandard" , true ) <> 0
63+ || String.Compare( name, " System.Private.CoreLib" , true ) <> 0
64+
5765// --------------------------------------------------------------------
5866// Utilities: type names
5967// --------------------------------------------------------------------
@@ -2803,12 +2811,16 @@ and [<Sealed>] ILTypeDefs(f: unit -> ILPreTypeDef[]) =
28032811 member x.GetEnumerator () =
28042812 ( seq { for pre in array.Value -> pre.GetTypeDef() }) .GetEnumerator()
28052813
2806- member x .AsArrayOfPreTypeDefs() = array.Value
2814+ member _ .AsArrayOfPreTypeDefs() = array.Value
28072815
2808- member x .FindByName nm =
2816+ member _ .FindByName nm =
28092817 let ns , n = splitILTypeName nm
28102818 dict.Value[ ( ns, n) ]. GetTypeDef()
28112819
2820+ member _.ExistsByName nm =
2821+ let ns , n = splitILTypeName nm
2822+ dict.Value.ContainsKey(( ns, n))
2823+
28122824and [<NoEquality; NoComparison>] ILPreTypeDef =
28132825 abstract Namespace: string list
28142826 abstract Name: string
@@ -3331,15 +3343,9 @@ let tname_UIntPtr = "System.UIntPtr"
33313343let tname_TypedReference = " System.TypedReference"
33323344
33333345[<NoEquality; NoComparison; StructuredFormatDisplay( " {DebugText}" ) >]
3334- type ILGlobals
3335- (
3336- primaryScopeRef: ILScopeRef,
3337- assembliesThatForwardToPrimaryAssembly: ILAssemblyRef list,
3338- fsharpCoreAssemblyScopeRef: ILScopeRef
3339- ) =
3346+ type ILGlobals ( primaryScopeRef : ILScopeRef , equivPrimaryAssemblyRefs : ILAssemblyRef list , fsharpCoreAssemblyScopeRef : ILScopeRef ) =
33403347
3341- let assembliesThatForwardToPrimaryAssembly =
3342- Array.ofList assembliesThatForwardToPrimaryAssembly
3348+ let equivPrimaryAssemblyRefs = Array.ofList equivPrimaryAssemblyRefs
33433349
33443350 let mkSysILTypeRef nm = mkILTyRef ( primaryScopeRef, nm)
33453351
@@ -3394,17 +3400,16 @@ type ILGlobals
33943400
33953401 member x.IsPossiblePrimaryAssemblyRef ( aref : ILAssemblyRef ) =
33963402 aref.EqualsIgnoringVersion x.primaryAssemblyRef
3397- || assembliesThatForwardToPrimaryAssembly
3398- |> Array.exists aref.EqualsIgnoringVersion
3403+ || equivPrimaryAssemblyRefs |> Array.exists aref.EqualsIgnoringVersion
33993404
34003405 /// For debugging
34013406 [<DebuggerBrowsable( DebuggerBrowsableState.Never) >]
34023407 member x.DebugText = x.ToString()
34033408
34043409 override x.ToString () = " <ILGlobals>"
34053410
3406- let mkILGlobals ( primaryScopeRef , assembliesThatForwardToPrimaryAssembly , fsharpCoreAssemblyScopeRef ) =
3407- ILGlobals( primaryScopeRef, assembliesThatForwardToPrimaryAssembly , fsharpCoreAssemblyScopeRef)
3411+ let mkILGlobals ( primaryScopeRef , equivPrimaryAssemblyRefs , fsharpCoreAssemblyScopeRef ) =
3412+ ILGlobals( primaryScopeRef, equivPrimaryAssemblyRefs , fsharpCoreAssemblyScopeRef)
34083413
34093414let mkNormalCall mspec = I_ call( Normalcall, mspec, None)
34103415
0 commit comments