diff options
author | Maxim Lipnin <v-maxlip@microsoft.com> | 2018-10-02 13:16:20 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2018-10-02 15:56:01 +0300 |
commit | b549fa7f32a8a6e2387c88d72a92f6cef016e427 (patch) | |
tree | 243f0a3964d0312f1dc2e1a1f0b9bc0e84951c43 | |
parent | 0dffbef269079364673d113f1fb4d135eb769424 (diff) |
[Reflection] Fix issue with finding types in module using an asterisk as filter criteria
-rw-r--r-- | mcs/class/corlib/System.Reflection/Module.cs | 2 | ||||
-rw-r--r-- | mcs/class/corlib/Test/System.Reflection/ModuleTest.cs | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/mcs/class/corlib/System.Reflection/Module.cs b/mcs/class/corlib/System.Reflection/Module.cs index 75bfc1fc74b..a972e683849 100644 --- a/mcs/class/corlib/System.Reflection/Module.cs +++ b/mcs/class/corlib/System.Reflection/Module.cs @@ -213,7 +213,7 @@ namespace System.Reflection { private static bool filter_by_type_name (Type m, object filterCriteria) { string s = (string)filterCriteria; if (s.Length > 0 && s [s.Length - 1] == '*') - return m.Name.StartsWithOrdinalUnchecked (s.Substring (0, s.Length - 1)); + return m.Name.StartsWith (s.Substring (0, s.Length - 1), StringComparison.Ordinal); return m.Name == s; } diff --git a/mcs/class/corlib/Test/System.Reflection/ModuleTest.cs b/mcs/class/corlib/Test/System.Reflection/ModuleTest.cs index 3edccf4028a..3bb1af7f036 100644 --- a/mcs/class/corlib/Test/System.Reflection/ModuleTest.cs +++ b/mcs/class/corlib/Test/System.Reflection/ModuleTest.cs @@ -324,10 +324,14 @@ public class ModuleTest Type[] t; + t = m.FindTypes (Module.FilterTypeName, "*"); + Assert.AreNotEqual (0, t.Length, "#A0"); t = m.FindTypes (Module.FilterTypeName, "FindTypesTest*"); Assert.AreEqual (2, t.Length, "#A1"); Assert.AreEqual ("FindTypesTestFirstClass", t [0].Name, "#A2"); Assert.AreEqual ("FindTypesTestSecondClass", t [1].Name, "#A3"); + t = m.FindTypes (Module.FilterTypeNameIgnoreCase, "*"); + Assert.AreNotEqual (0, t.Length, "#B0"); t = m.FindTypes (Module.FilterTypeNameIgnoreCase, "findtypestest*"); Assert.AreEqual (2, t.Length, "#B1"); Assert.AreEqual ("FindTypesTestFirstClass", t [0].Name, "#B2"); |