Skip to content

Commit 5d52ba0

Browse files
committed
Merge remote-tracking branch 'upstream/master' into ops
2 parents bc0529d + 58a4bb8 commit 5d52ba0

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

src/ProvidedTypes.fs

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8082,9 +8082,12 @@ namespace ProviderImplementation.ProvidedTypes
80828082

80838083

80848084

8085-
type ProvidedAssembly(isTgt: bool, assemblyName:AssemblyName, assemblyFileName: string) =
8085+
type ProvidedAssembly(isTgt: bool, assemblyName:AssemblyName, assemblyFileName: string, customAttributesData) =
80868086

80878087
inherit Assembly()
8088+
8089+
let customAttributesImpl = CustomAttributesImpl(isTgt, customAttributesData)
8090+
80888091
let theTypes = ResizeArray<ProvidedTypeDefinition[] * string list option>()
80898092

80908093
let addTypes (ptds:ProvidedTypeDefinition[], enclosingTypeNames: string list option) =
@@ -8095,6 +8098,8 @@ namespace ProviderImplementation.ProvidedTypes
80958098
theTypes.Add (ptds, enclosingTypeNames)
80968099

80978100
let theTypesArray = lazy (theTypes.ToArray() |> Array.collect (function (ptds, None) -> Array.map (fun ptd -> (ptd :> Type)) ptds | _ -> [| |]))
8101+
8102+
member __.AddCustomAttribute(attribute) = customAttributesImpl.AddCustomAttribute(attribute)
80988103

80998104
override __.GetReferencedAssemblies() = [| |] //notRequired x "GetReferencedAssemblies" (assemblyName.ToString())
81008105

@@ -8130,7 +8135,7 @@ namespace ProviderImplementation.ProvidedTypes
81308135
ProvidedAssembly(AssemblyName(simpleName), assemblyFileName)
81318136

81328137
new (assemblyName, assemblyFileName) =
8133-
ProvidedAssembly(false, assemblyName, assemblyFileName)
8138+
ProvidedAssembly(false, assemblyName, assemblyFileName, K [||])
81348139

81358140
member __.BelongsToTargetModel = isTgt
81368141

@@ -8144,6 +8149,8 @@ namespace ProviderImplementation.ProvidedTypes
81448149
addTypes (types, enclosingGeneratedTypeNames)
81458150

81468151
member __.GetTheTypes () = theTypes.ToArray()
8152+
8153+
override __.GetCustomAttributesData() = customAttributesImpl.GetCustomAttributesData()
81478154

81488155
//====================================================================================================
81498156
// ProvidedTypesContext
@@ -9238,9 +9245,9 @@ namespace ProviderImplementation.ProvidedTypes
92389245
match assemblyTableFwd.TryGetValue(assembly) with
92399246
| true, newT -> newT
92409247
| false, _ ->
9241-
let tgtAssembly = ProvidedAssembly(true, assembly.GetName(), assembly.Location)
9248+
let tgtAssembly = ProvidedAssembly(true, assembly.GetName(), assembly.Location, K(convCustomAttributesDataToTgt(assembly.GetCustomAttributesData())))
92429249

9243-
for (types, enclosingGeneratedTypeNames) in assembly.GetTheTypes() do
9250+
for (types, enclosingGeneratedTypeNames) in assembly.GetTheTypes() do
92449251
let typesT = Array.map convProvidedTypeDefToTgt types
92459252
tgtAssembly.AddTheTypes (typesT, enclosingGeneratedTypeNames)
92469253

@@ -13675,14 +13682,15 @@ namespace ProviderImplementation.ProvidedTypes
1367513682
}
1367613683
override __.ToString() = "builder for " + moduleName
1367713684

13678-
type ILAssemblyBuilder(assemblyName: AssemblyName, fileName, ilg) =
13685+
type ILAssemblyBuilder(assemblyName: AssemblyName, fileName, ilg, attrs : ILCustomAttribute seq) =
13686+
let cattrs = ResizeArray<ILCustomAttribute>(attrs)
1367913687
let manifest =
1368013688
{ Name = assemblyName.Name
1368113689
AuxModuleHashAlgorithm = 0x8004 // SHA1
1368213690
PublicKey = UNone
1368313691
Version = UNone
1368413692
Locale = UNone
13685-
CustomAttrs = emptyILCustomAttrs
13693+
CustomAttrs = { new ILCustomAttrs with member __.Entries = cattrs.ToArray() }
1368613694
//AssemblyLongevity=ILAssemblyLongevity.Unspecified
1368713695
DisableJitOptimizations = false
1368813696
JitTracking = true
@@ -14909,7 +14917,11 @@ namespace ProviderImplementation.ProvidedTypes
1490914917
let ilg = context.ILGlobals
1491014918
let assemblyName = targetAssembly.GetName()
1491114919
let assemblyFileName = targetAssembly.Location
14912-
let assemblyBuilder = ILAssemblyBuilder(assemblyName, assemblyFileName, ilg)
14920+
let assemblyBuilder =
14921+
let attrs = targetAssembly.GetCustomAttributesData()
14922+
let cattrs = ResizeArray()
14923+
defineCustomAttrs cattrs.Add attrs
14924+
ILAssemblyBuilder(assemblyName, assemblyFileName, ilg, cattrs)
1491314925
let assemblyMainModule = assemblyBuilder.MainModule
1491414926

1491514927
// Set the Assembly on the type definitions

0 commit comments

Comments
 (0)