Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/linker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitek Karas <vitek.karas@microsoft.com>2021-06-17 19:14:28 +0300
committerGitHub <noreply@github.com>2021-06-17 19:14:28 +0300
commit078ffd5af9d29e21b37945897eec738ae74d3939 (patch)
tree97ddf6096bbf15377767f509579ae18f9a375e91
parentbee7f73564e495e6ab8627e7c595dacc32a4b096 (diff)
Add a test case for string->type resolution with forwarded type in generic argument (#2099)
-rw-r--r--test/Mono.Linker.Tests.Cases/TypeForwarding/UsedForwarderInGenericIsDynamicallyAccessedWithAssemblyCopyUsed.cs46
1 files changed, 46 insertions, 0 deletions
diff --git a/test/Mono.Linker.Tests.Cases/TypeForwarding/UsedForwarderInGenericIsDynamicallyAccessedWithAssemblyCopyUsed.cs b/test/Mono.Linker.Tests.Cases/TypeForwarding/UsedForwarderInGenericIsDynamicallyAccessedWithAssemblyCopyUsed.cs
new file mode 100644
index 000000000..9895151b8
--- /dev/null
+++ b/test/Mono.Linker.Tests.Cases/TypeForwarding/UsedForwarderInGenericIsDynamicallyAccessedWithAssemblyCopyUsed.cs
@@ -0,0 +1,46 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System.Diagnostics.CodeAnalysis;
+using Mono.Linker.Tests.Cases.Expectations.Assertions;
+using Mono.Linker.Tests.Cases.Expectations.Metadata;
+using Mono.Linker.Tests.Cases.TypeForwarding.Dependencies;
+
+namespace Mono.Linker.Tests.Cases.TypeForwarding
+{
+
+ [SetupLinkerAction ("copyused", "Forwarder")]
+ [KeepTypeForwarderOnlyAssemblies ("false")]
+
+ [SetupCompileBefore ("Forwarder.dll", new[] { "Dependencies/ReferenceImplementationLibrary.cs" }, defines: new[] { "INCLUDE_REFERENCE_IMPL" })]
+
+ // After compiling the test case we then replace the reference impl with implementation + type forwarder
+ [SetupCompileAfter ("Implementation.dll", new[] { "Dependencies/ImplementationLibrary.cs" })]
+ [SetupCompileAfter ("Forwarder.dll", new[] { "Dependencies/ForwarderLibrary.cs" }, references: new[] { "Implementation.dll" })]
+
+ // https://github.com/mono/linker/issues/1536
+ //[KeptMemberInAssembly ("Forwarder.dll", typeof (ImplementationLibrary))]
+ [KeptMemberInAssembly ("Implementation.dll", typeof (ImplementationLibrary))]
+ class UsedForwarderInGenericIsDynamicallyAccessedWithAssemblyCopyUsed
+ {
+ static void Main ()
+ {
+ PointToTypeInFacade ("Mono.Linker.Tests.Cases.TypeForwarding.OuterGeneric`1[[Mono.Linker.Tests.Cases.TypeForwarding.Dependencies.ImplementationLibrary, Forwarder]], test");
+ }
+
+ [Kept]
+ static void PointToTypeInFacade (
+ [KeptAttributeAttribute (typeof(DynamicallyAccessedMembersAttribute))]
+ [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] string typeName)
+ {
+ }
+ }
+
+ [Kept]
+ class OuterGeneric<T>
+ {
+ [Kept]
+ public OuterGeneric () { }
+ }
+}