Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
d8d444d
Add abstract AssemblyBuilder
jkotas Feb 2, 2022
97ed454
Create managed RuntimeAssemblyBuilder
jkotas Feb 6, 2022
791b4cb
Add RuntimeAssemblyBuilder to the build
jkotas Feb 6, 2022
eaa8c73
Boilerplate for RuntimeAssemblyBuilder
jkotas Feb 8, 2022
80c310d
Emit Assembly record
jkotas Feb 9, 2022
c82c7d0
Fixups after rebase
jkotas Feb 9, 2022
85b37d6
Add temporary ReflectionEmitLoadContext
jkotas Feb 9, 2022
cde27c2
Factor out RuntimeModuleBuilder
jkotas Feb 9, 2022
6fe4240
Abstract TypeBuilder and EventBuilder
jkotas Mar 23, 2022
79dd71a
Refactor PropertyBuilder
jkotas Mar 25, 2022
7ec068b
Refactor EnumBuilder
jkotas Mar 25, 2022
b36778c
Refactor FieldBuilder
jkotas Mar 25, 2022
6ee8a67
Refactor ConstructorBuilder and MethodBuilder
jkotas Mar 25, 2022
e127952
Fix app compat issues
buyaa-n Nov 10, 2022
e102000
Revert updates that not needed for initial step
buyaa-n Nov 16, 2022
c32f0e5
Make GenericTypeParameterBuilder abstract
buyaa-n Nov 18, 2022
3b4cba9
Merge conflicts
buyaa-n Nov 18, 2022
0bbcaa7
Fix errors found after merge
buyaa-n Nov 18, 2022
9b96074
Fix app compat issue
buyaa-n Nov 18, 2022
8dcc68d
Merge remote-tracking branch 'upstream/main' into reflection-emit
ViktorHofer Nov 22, 2022
9017148
Move suppressions into the common file
ViktorHofer Nov 22, 2022
a8bf9f2
Update mono implementations
buyaa-n Dec 9, 2022
bab5062
Merge conflicts
buyaa-n Dec 9, 2022
c8a2574
Merge conflicts
buyaa-n Dec 9, 2022
0383fc6
Handle API compat warnings
buyaa-n Dec 9, 2022
b656b01
Fix some failures
buyaa-n Dec 12, 2022
fe0fddf
Mono updates
buyaa-n Dec 13, 2022
3433e5a
Mono updates
buyaa-n Dec 20, 2022
a6928a5
Merge branch 'main' of https://github.com/dotnet/runtime into reflect…
buyaa-n Dec 21, 2022
902f550
Suppress unused variable warning
buyaa-n Dec 21, 2022
a6f202e
Mono failure fixes
buyaa-n Dec 28, 2022
ceb7230
Check ModuleBuilder from generic arguments
buyaa-n Dec 29, 2022
9de8783
Update src/mono/System.Private.CoreLib/src/System/Reflection/Emit/Typ…
buyaa-n Dec 29, 2022
9f07478
Keep runtime old behavior for TypeBuilder static methods
buyaa-n Dec 29, 2022
c4287ae
Merge branch 'reflection-emit' of github.com:buyaa-n/runtime into ref…
buyaa-n Dec 29, 2022
6c1e9ed
Remove/revert some unwanted changes
buyaa-n Jan 3, 2023
dd90d0a
Merge branch 'main' of https://github.com/dotnet/runtime into reflect…
buyaa-n Jan 4, 2023
522d3a7
Merge branch 'main' of https://github.com/dotnet/runtime into reflect…
buyaa-n Jan 5, 2023
a348398
Remove unneeded change
buyaa-n Jan 6, 2023
24f5298
Apply latest feedback
buyaa-n Jan 20, 2023
eeab882
Merge conflict
buyaa-n Jan 20, 2023
34c0216
Use protected absract methods and other related changes
buyaa-n Jan 23, 2023
98ca969
Apply feedback and latest API review updates, refert compat suppressions
buyaa-n Jan 25, 2023
039a89a
Add Assert
buyaa-n Jan 26, 2023
a16ce6e
Fix API compat failures
buyaa-n Jan 27, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix some failures
  • Loading branch information
buyaa-n committed Dec 12, 2022
commit b656b0119c2860116d6f581e69dd41e36203b13d
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public override FieldBuilder DefineLiteral(string literalName, object? literalVa
}

[return: DynamicallyAccessedMembersAttribute(DynamicallyAccessedMemberTypes.All)]
public override TypeInfo? CreateTypeInfo()
public override TypeInfo CreateTypeInfo()
{
return m_typeBuilder.CreateTypeInfo();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1678,8 +1678,8 @@ private EventBuilder DefineEventNoLock(string name, EventAttributes attributes,
public override TypeInfo CreateTypeInfo()
{
TypeInfo? typeInfo = CreateTypeInfoImpl();
Debug.Assert(typeInfo != null);
return typeInfo;
Debug.Assert(m_isHiddenGlobalType || typeInfo != null);
return typeInfo!;
}

[return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ public virtual FieldBuilder UnderlyingField
=> UnderlyingField;

[return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)]
public Type? CreateType()
public Type CreateType()
=> CreateTypeInfo();

[return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)]
public virtual TypeInfo? CreateTypeInfo()
public virtual TypeInfo CreateTypeInfo()
=> CreateTypeInfo();

public virtual FieldBuilder DefineLiteral(string literalName, object literalValue)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,6 @@ public override int GetHashCode()
[StructLayout(LayoutKind.Sequential)]
public partial class AssemblyBuilder
{
private UIntPtr dynamic_assembly; /* GC-tracked */
private Module[]? loaded_modules;

[RequiresDynamicCode("Defining a dynamic assembly requires dynamic code.")]
public static AssemblyBuilder DefineDynamicAssembly(AssemblyName name, AssemblyBuilderAccess access)
{
Expand Down Expand Up @@ -204,15 +201,19 @@ internal sealed partial class RuntimeAssemblyBuilder : AssemblyBuilder
//
// AssemblyBuilder inherits from Assembly, but the runtime thinks its layout inherits from RuntimeAssembly
//
#region Sync with RuntimeAssembly.cs and ReflectionAssembly in object-internals.h
#region Sync with RuntimeAssembly.cs and ReflectionAssembly in object-internals.h
internal IntPtr _mono_assembly;

#pragma warning disable CS0169, CA1823 // The field 'RuntimeAssemblyBuilder.dynamic_assembly' is never used
private UIntPtr dynamic_assembly; /* GC-tracked */
private RuntimeModuleBuilder[] modules;
private string? name;
private CustomAttributeBuilder[]? cattrs;
private string? version;
private string? culture;
private byte[]? public_key_token;
private Module[]? loaded_modules;
#pragma warning restore CS0169, CA1823 // The field 'RuntimeAssemblyBuilder.loaded_modules' is never used
private uint access;
#endregion

Expand All @@ -222,10 +223,10 @@ internal sealed partial class RuntimeAssemblyBuilder : AssemblyBuilder

[MethodImplAttribute(MethodImplOptions.InternalCall)]
[DynamicDependency("RuntimeResolve", typeof(RuntimeModuleBuilder))]
private static extern void basic_init(AssemblyBuilder ab);
private static extern void basic_init(RuntimeAssemblyBuilder ab);

[MethodImplAttribute(MethodImplOptions.InternalCall)]
private static extern void UpdateNativeCustomAttributes(AssemblyBuilder ab);
private static extern void UpdateNativeCustomAttributes(RuntimeAssemblyBuilder ab);

[DynamicDependency(nameof(access))] // Automatically keeps all previous fields too due to StructLayout
internal RuntimeAssemblyBuilder(AssemblyName n, AssemblyBuilderAccess access)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,9 @@ public override Type UnderlyingSystemType
}

[return: DynamicallyAccessedMembersAttribute(DynamicallyAccessedMemberTypes.All)]
public override TypeInfo? CreateTypeInfo()
#pragma warning disable CS8764 // Nullability of return type doesn't match overridden member
public override TypeInfo CreateTypeInfo()
#pragma warning restore CS8764
{
return _tb.CreateTypeInfo();
}
Expand Down