From 27e4bc578b0783b2d9045fdbb1299e1c86bddce7 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Fri, 20 Jun 2025 22:51:10 +0200 Subject: [PATCH] ref structs cannot be boxed --- .../TestCases/Correctness/Conversions.cs | 4 ++-- ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Conversions.cs b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Conversions.cs index 59e94ed4b..040010e8f 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Conversions.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Correctness/Conversions.cs @@ -112,7 +112,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness Console.WriteLine(ReadZeroTerminatedString("Hello World!".Length)); C1.Test(); -#if ROSLYN2 && !NET40 +#if CS120 && !NET40 C3.Run(); #endif } @@ -204,7 +204,7 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.Correctness } } -#if ROSLYN2 && !NET40 +#if CS120 && !NET40 class C3 { [InlineArray(4)] struct MyArray { private int elem; } diff --git a/ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs b/ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs index 6acbeaa49..bc857c9f1 100644 --- a/ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs +++ b/ICSharpCode.Decompiler/CSharp/Resolver/CSharpConversions.cs @@ -779,7 +779,7 @@ namespace ICSharpCode.Decompiler.CSharp.Resolver { // C# 4.0 spec: ยง6.1.7 fromType = NullableType.GetUnderlyingType(fromType); - if (fromType.IsReferenceType == false && toType.IsReferenceType == true) + if (fromType.IsReferenceType == false && !fromType.IsByRefLike && toType.IsReferenceType == true) return IsSubtypeOf(fromType, toType, 0); else return false;