From 511a769fdd686ea820b6d2ececc5074e7f1db62f Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Thu, 24 Aug 2017 10:37:05 +0200 Subject: [PATCH] [mcs] Update logic when checking for tuple element names when overriding inherited member --- mcs/mcs/tuples.cs | 8 ++++---- mcs/tests/test-tuple-06.cs | 19 +++++++++++++++++++ mcs/tests/ver-il-net_4_x.xml | 21 +++++++++++++++++++++ 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 mcs/tests/test-tuple-06.cs diff --git a/mcs/mcs/tuples.cs b/mcs/mcs/tuples.cs index 559c2f3ee43..bb7faf734df 100644 --- a/mcs/mcs/tuples.cs +++ b/mcs/mcs/tuples.cs @@ -234,15 +234,15 @@ namespace Mono.CSharp public static bool CheckOverrideName (TypeSpec type, TypeSpec baseType) { var btype_ntuple = baseType as NamedTupleSpec; - var mtype_ntupe = type as NamedTupleSpec; - if (btype_ntuple == null && mtype_ntupe == null) + var mtype_ntuple = type as NamedTupleSpec; + if (btype_ntuple == null && mtype_ntuple == null) return true; - if (btype_ntuple != null || mtype_ntupe != null) + if (btype_ntuple == null || mtype_ntuple == null) return false; var b_elements = btype_ntuple.elements; - var m_elements = mtype_ntupe.elements; + var m_elements = mtype_ntuple.elements; for (int i = 0; i < b_elements.Count; ++i) { if (b_elements [i] != m_elements [i]) return false; diff --git a/mcs/tests/test-tuple-06.cs b/mcs/tests/test-tuple-06.cs new file mode 100644 index 00000000000..64bb9b05822 --- /dev/null +++ b/mcs/tests/test-tuple-06.cs @@ -0,0 +1,19 @@ +class Base +{ + public virtual (int, long rest) Foo () + { + return (1, 2); + } +} + +class Test : Base +{ + public override (int, long rest) Foo () + { + return (3, 4); + } + + public static void Main () + { + } +} \ No newline at end of file diff --git a/mcs/tests/ver-il-net_4_x.xml b/mcs/tests/ver-il-net_4_x.xml index d3c5c4ff729..db5bfbd387c 100644 --- a/mcs/tests/ver-il-net_4_x.xml +++ b/mcs/tests/ver-il-net_4_x.xml @@ -73115,6 +73115,27 @@ + + + + 17 + + + 7 + + + + + 17 + + + 2 + + + 7 + + + -- 2.25.1