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 <10670590+vitek-karas@users.noreply.github.com>2022-09-16 21:31:04 +0300
committerGitHub <noreply@github.com>2022-09-16 21:31:04 +0300
commit369021a5df42374c0d4703767f1807b977c502c5 (patch)
treed55a5bb44c719362f9015496b6fd7a5c87f4d318
parent6e592a9088444c5fcb700ae1a1365acbf5f3fc21 (diff)
Better warning message for DynamicDependency problem (#3035)
* Improve warning message for DynamicDependency to include the name of the type along with the name of the member we were looking for. * Fix tests
-rw-r--r--src/ILLink.Shared/SharedStrings.resx2
-rw-r--r--src/linker/Linker.Steps/MarkStep.cs4
-rw-r--r--test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMemberSignatureWildcard.cs3
-rw-r--r--test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs10
4 files changed, 10 insertions, 9 deletions
diff --git a/src/ILLink.Shared/SharedStrings.resx b/src/ILLink.Shared/SharedStrings.resx
index 0330b7f05..3db202432 100644
--- a/src/ILLink.Shared/SharedStrings.resx
+++ b/src/ILLink.Shared/SharedStrings.resx
@@ -613,7 +613,7 @@
<value>The member signature or DynamicallyAccessedMemberTypes in a DynamicDependencyAttribute constructor did not resolve to any members on the type.</value>
</data>
<data name="NoMembersResolvedForMemberSignatureOrTypeMessage" xml:space="preserve">
- <value>No members were resolved for '{0}'.</value>
+ <value>No members were resolved for '{0}' on type '{1}'.</value>
</data>
<data name="XmlMissingNameAttributeInResourceTitle" xml:space="preserve">
<value>The resource element in a substitution file did not have a 'name' attribute.</value>
diff --git a/src/linker/Linker.Steps/MarkStep.cs b/src/linker/Linker.Steps/MarkStep.cs
index 8870075f3..dc026e7b9 100644
--- a/src/linker/Linker.Steps/MarkStep.cs
+++ b/src/linker/Linker.Steps/MarkStep.cs
@@ -947,14 +947,14 @@ namespace Mono.Linker.Steps
if (dynamicDependency.MemberSignature is string memberSignature) {
members = DocumentationSignatureParser.GetMembersByDocumentationSignature (type, memberSignature, Context, acceptName: true);
if (!members.Any ()) {
- Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.NoMembersResolvedForMemberSignatureOrType, memberSignature);
+ Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.NoMembersResolvedForMemberSignatureOrType, memberSignature, type.GetDisplayName ());
return;
}
} else {
var memberTypes = dynamicDependency.MemberTypes;
members = type.GetDynamicallyAccessedMembers (Context, memberTypes);
if (!members.Any ()) {
- Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.NoMembersResolvedForMemberSignatureOrType, memberTypes.ToString ());
+ Context.LogWarning (ScopeStack.CurrentScope.Origin, DiagnosticId.NoMembersResolvedForMemberSignatureOrType, memberTypes.ToString (), type.GetDisplayName ());
return;
}
}
diff --git a/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMemberSignatureWildcard.cs b/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMemberSignatureWildcard.cs
index 23bd791ed..2a4bc9d15 100644
--- a/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMemberSignatureWildcard.cs
+++ b/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMemberSignatureWildcard.cs
@@ -6,7 +6,7 @@ using Mono.Linker.Tests.Cases.Expectations.Metadata;
namespace Mono.Linker.Tests.Cases.DynamicDependencies
{
[SetupCompileBefore ("library.dll", new[] { "Dependencies/DynamicDependencyMethodInAssemblyLibrary.cs" })]
- [LogContains ("IL2037: Mono.Linker.Tests.Cases.DynamicDependencies.DynamicDependencyMemberSignatureWildcard.Dependency(): No members were resolved for '*'.")]
+ [ExpectedNoWarnings]
public class DynamicDependencyMemberSignatureWildcard
{
public static void Main ()
@@ -15,6 +15,7 @@ namespace Mono.Linker.Tests.Cases.DynamicDependencies
}
[Kept]
+ [ExpectedWarning ("IL2037", "'*'", "'Mono.Linker.Tests.Cases.DynamicDependencies.Dependencies.DynamicDependencyMethodInAssemblyLibrary'")]
[DynamicDependency ("*", "Mono.Linker.Tests.Cases.DynamicDependencies.Dependencies.DynamicDependencyMethodInAssemblyLibrary", "library")]
static void Dependency ()
{
diff --git a/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs b/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs
index 206c4d146..ae0812445 100644
--- a/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs
+++ b/test/Mono.Linker.Tests.Cases/DynamicDependencies/DynamicDependencyMethod.cs
@@ -58,19 +58,19 @@ namespace Mono.Linker.Tests.Cases.DynamicDependencies
[Kept]
- [ExpectedWarning ("IL2037", "MissingMethod")]
+ [ExpectedWarning ("IL2037", "MissingMethod", "'Mono.Linker.Tests.Cases.DynamicDependencies.C'")]
[DynamicDependency ("MissingMethod", typeof (C))]
- [ExpectedWarning ("IL2037", "Dependency2``1(``0,System.Int32,System.Object)")]
+ [ExpectedWarning ("IL2037", "Dependency2``1(``0,System.Int32,System.Object)", "'Mono.Linker.Tests.Cases.DynamicDependencies.C'")]
[DynamicDependency ("Dependency2``1(``0,System.Int32,System.Object)", typeof (C))]
- [ExpectedWarning ("IL2037", "''")]
+ [ExpectedWarning ("IL2037", "''", "'Mono.Linker.Tests.Cases.DynamicDependencies.DynamicDependencyMethod.B'")]
[DynamicDependency ("")]
- [ExpectedWarning ("IL2037", "#ctor()")]
+ [ExpectedWarning ("IL2037", "#ctor()", "'Mono.Linker.Tests.Cases.DynamicDependencies.DynamicDependencyMethod.NestedStruct'")]
[DynamicDependency ("#ctor()", typeof (NestedStruct))]
- [ExpectedWarning ("IL2037", "#cctor()")]
+ [ExpectedWarning ("IL2037", "#cctor()", "'Mono.Linker.Tests.Cases.DynamicDependencies.C'")]
[DynamicDependency ("#cctor()", typeof (C))]
[ExpectedWarning ("IL2036", "NonExistentType")]