summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ModLoading/Finders
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <github@jplamondonw.com>2018-08-14 12:21:40 -0400
committerJesse Plamondon-Willard <github@jplamondonw.com>2018-08-14 12:21:40 -0400
commit4f28ea33bd7cc65485402c5e85259083e86b49e1 (patch)
tree86c4d8f9272de9a715cfcbf4008f0c09f5a59a21 /src/SMAPI/Framework/ModLoading/Finders
parent60b41195778af33fd609eab66d9ae3f1d1165e8f (diff)
parent4dd4efc96fac6a7ab66c14edead10e4fa988040d (diff)
downloadSMAPI-4f28ea33bd7cc65485402c5e85259083e86b49e1.tar.gz
SMAPI-4f28ea33bd7cc65485402c5e85259083e86b49e1.tar.bz2
SMAPI-4f28ea33bd7cc65485402c5e85259083e86b49e1.zip
Merge branch 'develop' into stable
Diffstat (limited to 'src/SMAPI/Framework/ModLoading/Finders')
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs b/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs
index cf5a3175..3a26660f 100644
--- a/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs
+++ b/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs
@@ -70,7 +70,7 @@ namespace StardewModdingAPI.Framework.ModLoading.Finders
// method reference
MethodReference methodReference = RewriteHelper.AsMethodReference(instruction);
- if (methodReference != null && this.ShouldValidate(methodReference.DeclaringType))
+ if (methodReference != null && !this.IsUnsupported(methodReference) && this.ShouldValidate(methodReference.DeclaringType))
{
// get potential targets
MethodDefinition[] candidateMethods = methodReference.DeclaringType.Resolve()?.Methods.Where(found => found.Name == methodReference.Name).ToArray();
@@ -106,6 +106,14 @@ namespace StardewModdingAPI.Framework.ModLoading.Finders
return type != null && this.ValidateReferencesToAssemblies.Contains(type.Scope.Name);
}
+ /// <summary>Get whether a method reference is a special case that's not currently supported (e.g. array methods).</summary>
+ /// <param name="method">The method reference.</param>
+ private bool IsUnsupported(MethodReference method)
+ {
+ return
+ method.DeclaringType.Name.Contains("["); // array methods
+ }
+
/// <summary>Get a shorter type name for display.</summary>
/// <param name="type">The type reference.</param>
private string GetFriendlyTypeName(TypeReference type)