diff options
author | Evan Behar <behare@gmail.com> | 2018-07-07 23:45:02 -0700 |
---|---|---|
committer | Evan Behar <behare@gmail.com> | 2018-07-07 23:45:02 -0700 |
commit | 88f754e5b134f43ed6c7a833834aaeb92e44a62e (patch) | |
tree | edfdeae87a6a78e98a9a2ae37f318ba01848132e /src/SMAPI/Framework/ModLoading/Finders | |
parent | 829e24b23e23ed44392c07d266107bf4a2f36998 (diff) | |
download | SMAPI-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.cs | 7 |
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 |