Skip to content

Commit af841de

Browse files
authored
Remove IsModuleRef/IsAssemblyRef/ModuleRef/AssemblyRef properties (#8045)
* Remove IsModuleRef/IsAssemblyRef/ModuleRef/AssemblyRef properties on ILScopeRef * Use m_typ_Object for scope
1 parent c66d4db commit af841de

File tree

5 files changed

+14
-22
lines changed

5 files changed

+14
-22
lines changed

src/absil/il.fs

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -493,14 +493,6 @@ type ILScopeRef =
493493

494494
member x.IsLocalRef = match x with ILScopeRef.Local -> true | _ -> false
495495

496-
member x.IsModuleRef = match x with ILScopeRef.Module _ -> true | _ -> false
497-
498-
member x.IsAssemblyRef= match x with ILScopeRef.Assembly _ -> true | _ -> false
499-
500-
member x.ModuleRef = match x with ILScopeRef.Module x -> x | _ -> failwith "not a module reference"
501-
502-
member x.AssemblyRef = match x with ILScopeRef.Assembly x -> x | _ -> failwith "not an assembly reference"
503-
504496
member x.QualifiedName =
505497
match x with
506498
| ILScopeRef.Local -> ""
@@ -2627,7 +2619,10 @@ type ILGlobals(primaryScopeRef) =
26272619
let m_typ_UIntPtr = ILType.Value (mkILNonGenericTySpec (m_mkSysILTypeRef tname_UIntPtr))
26282620

26292621
member x.primaryAssemblyScopeRef = m_typ_Object.TypeRef.Scope
2630-
member x.primaryAssemblyName = m_typ_Object.TypeRef.Scope.AssemblyRef.Name
2622+
member x.primaryAssemblyName =
2623+
match m_typ_Object.TypeRef.Scope with
2624+
| ILScopeRef.Assembly aref -> aref.Name
2625+
| _ -> failwith "Invalid primary assembly"
26312626
member x.typ_Object = m_typ_Object
26322627
member x.typ_String = m_typ_String
26332628
member x.typ_Array = m_typ_Array

src/absil/il.fsi

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,6 @@ type ILScopeRef =
9999
/// A reference to a type in another assembly
100100
| Assembly of ILAssemblyRef
101101
member IsLocalRef: bool
102-
member IsModuleRef: bool
103-
member IsAssemblyRef: bool
104-
member ModuleRef: ILModuleRef
105-
member AssemblyRef: ILAssemblyRef
106102
member QualifiedName: string
107103

108104
// Calling conventions.

src/fsharp/Optimizer.fs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2070,9 +2070,7 @@ and OptimizeExprOp cenv env (op, tyargs, args, m) =
20702070
// guarantees to optimize.
20712071

20722072
| TOp.ILCall (_, _, _, _, _, _, _, mref, _enclTypeArgs, _methTypeArgs, _tys), _, [arg]
2073-
when (mref.DeclaringTypeRef.Scope.IsAssemblyRef &&
2074-
mref.DeclaringTypeRef.Scope.AssemblyRef.Name = cenv.g.ilg.typ_Array.TypeRef.Scope.AssemblyRef.Name &&
2075-
mref.DeclaringTypeRef.Name = cenv.g.ilg.typ_Array.TypeRef.Name &&
2073+
when (mref.DeclaringTypeRef.Name = cenv.g.ilg.typ_Array.TypeRef.Name &&
20762074
mref.Name = "get_Length" &&
20772075
isArray1DTy cenv.g (tyOfExpr cenv.g arg)) ->
20782076
OptimizeExpr cenv env (Expr.Op (TOp.ILAsm (i_ldlen, [cenv.g.int_ty]), [], [arg], m))
@@ -2785,7 +2783,10 @@ and TryInlineApplication cenv env finfo (tyargs: TType list, args: Expr list, m)
27852783
match vref.ApparentEnclosingEntity with
27862784
| Parent tcr when (tyconRefEq cenv.g cenv.g.lazy_tcr_canon tcr) ->
27872785
match tcr.CompiledRepresentation with
2788-
| CompiledTypeRepr.ILAsmNamed(iltr, _, _) -> iltr.Scope.AssemblyRef.Name = "FSharp.Core"
2786+
| CompiledTypeRepr.ILAsmNamed(iltr, _, _) ->
2787+
match iltr.Scope with
2788+
| ILScopeRef.Assembly aref -> aref.Name = "FSharp.Core"
2789+
| _ -> false
27892790
| _ -> false
27902791
| _ -> false
27912792
| _ -> false

src/fsharp/fsc.fs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1397,7 +1397,10 @@ module StaticLinker =
13971397
// Add all provider-generated assemblies into the static linking set
13981398
let FindProviderGeneratedILModules (ctok, tcImports: TcImports, providerGeneratedAssemblies: (ImportedBinary * _) list) =
13991399
[ for (importedBinary, provAssemStaticLinkInfo) in providerGeneratedAssemblies do
1400-
let ilAssemRef = importedBinary.ILScopeRef.AssemblyRef
1400+
let ilAssemRef =
1401+
match importedBinary.ILScopeRef with
1402+
| ILScopeRef.Assembly aref -> aref
1403+
| _ -> failwith "Invalid ILScopeRef, expected ILScopeRef.Assembly"
14011404
if debugStaticLinking then printfn "adding provider-generated assembly '%s' into static linking set" ilAssemRef.Name
14021405
match tcImports.TryFindDllInfo(ctok, Range.rangeStartup, ilAssemRef.Name, lookupOnly=false) with
14031406
| Some dllInfo ->

src/fsharp/tast.fs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5775,10 +5775,7 @@ let NewTycon (cpath, nm, m, access, reprAccess, kind, typars, docOption, usesPre
57755775

57765776

57775777
let NewILTycon nlpath (nm, m) tps (scoref: ILScopeRef, enc, tdef: ILTypeDef) mtyp =
5778-
5779-
// NOTE: hasSelfReferentialCtor=false is an assumption about mscorlib
5780-
let hasSelfReferentialCtor = tdef.IsClass && (not scoref.IsAssemblyRef && scoref.AssemblyRef.Name = "mscorlib")
5781-
let tycon = NewTycon(nlpath, nm, m, taccessPublic, taccessPublic, TyparKind.Type, tps, XmlDoc.Empty, true, false, hasSelfReferentialCtor, mtyp)
5778+
let tycon = NewTycon(nlpath, nm, m, taccessPublic, taccessPublic, TyparKind.Type, tps, XmlDoc.Empty, true, false, false, mtyp)
57825779

57835780
tycon.entity_tycon_repr <- TILObjectRepr (TILObjectReprData (scoref, enc, tdef))
57845781
tycon.TypeContents.tcaug_closed <- true

0 commit comments

Comments
 (0)