summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ModLoading/Finders
diff options
context:
space:
mode:
authorEvan Behar <behare@gmail.com>2018-07-07 23:45:02 -0700
committerEvan Behar <behare@gmail.com>2018-07-07 23:45:02 -0700
commit88f754e5b134f43ed6c7a833834aaeb92e44a62e (patch)
treeedfdeae87a6a78e98a9a2ae37f318ba01848132e /src/SMAPI/Framework/ModLoading/Finders
parent829e24b23e23ed44392c07d266107bf4a2f36998 (diff)
downloadSMAPI-88f754e5b134f43ed6c7a833834aaeb92e44a62e.tar.gz
SMAPI-88f754e5b134f43ed6c7a833834aaeb92e44a62e.tar.bz2
SMAPI-88f754e5b134f43ed6c7a833834aaeb92e44a62e.zip
Expand validation to respect CIL placeholders
Diffstat (limited to 'src/SMAPI/Framework/ModLoading/Finders')
-rw-r--r--src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs b/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs
index bd5c97d6..79db6921 100644
--- a/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs
+++ b/src/SMAPI/Framework/ModLoading/Finders/ReferenceToMemberWithUnexpectedTypeFinder.cs
@@ -67,7 +67,8 @@ namespace StardewModdingAPI.Framework.ModLoading.Finders
// validate return type
string actualReturnTypeID = this.GetComparableTypeID(targetField.FieldType);
string expectedReturnTypeID = this.GetComparableTypeID(fieldRef.FieldType);
- if (actualReturnTypeID != expectedReturnTypeID)
+
+ if (!RewriteHelper.LooksLikeSameType(expectedReturnTypeID, actualReturnTypeID))
{
this.NounPhrase = $"reference to {fieldRef.DeclaringType.FullName}.{fieldRef.Name} (field returns {this.GetFriendlyTypeName(targetField.FieldType, actualReturnTypeID)}, not {this.GetFriendlyTypeName(fieldRef.FieldType, expectedReturnTypeID)})";
return InstructionHandleResult.NotCompatible;
@@ -110,8 +111,8 @@ namespace StardewModdingAPI.Framework.ModLoading.Finders
/// <param name="type">The type reference.</param>
private bool ShouldValidate(TypeReference type)
{
- if (type == null)
- return false;
+ if (type != null)
+ return true;
// Extract scope name from type string representation for compatibility
// Under Linux, type.Scope.Name sometimes reports incorrectly