diff --git a/eng/Versions.props b/eng/Versions.props
index 09dac31926e29..d50c436e0072b 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -61,7 +61,7 @@
1.5.0
0.9.2
2.14.1
- 7.1.0.6543
+ 7.2.1.6856
1.0.7
1.5.5
6.0.0
diff --git a/src/Compilers/Test/Core/CompilationVerifier.cs b/src/Compilers/Test/Core/CompilationVerifier.cs
index 97fe22d0c9ac4..d578b464326ed 100644
--- a/src/Compilers/Test/Core/CompilationVerifier.cs
+++ b/src/Compilers/Test/Core/CompilationVerifier.cs
@@ -185,7 +185,32 @@ public string DumpIL()
/// The expected IL
public void VerifyTypeIL(string typeName, string expected)
{
- VerifyTypeIL(typeName, output => AssertEx.AssertEqualToleratingWhitespaceDifferences(expected, output, escapeQuotes: false));
+ VerifyTypeIL(typeName, output =>
+ {
+ // All our tests predate ilspy adding `// Header size: ...` to the contents. So trim that out since we
+ // really don't need to validate superfluous IL comments
+ expected = RemoveHeaderComments(expected);
+ output = RemoveHeaderComments(output);
+
+ output = FixupCodeSizeComments(output);
+
+ AssertEx.AssertEqualToleratingWhitespaceDifferences(expected, output, escapeQuotes: false);
+ });
+ }
+
+ private static readonly Regex s_headerCommentsRegex = new("""^\s*// Header size: [0-9]+\s*$""", RegexOptions.Multiline);
+ private static readonly Regex s_codeSizeCommentsRegex = new("""^\s*// Code size(:) [0-9]+\s*""", RegexOptions.Multiline);
+
+ private static string RemoveHeaderComments(string value)
+ {
+ return s_headerCommentsRegex.Replace(value, "");
+ }
+
+ private static string FixupCodeSizeComments(string output)
+ {
+ // We use the form `// Code size 7 (0x7)` while ilspy moved to the form `// Code size: 7 (0x7)` (with an
+ // extra colon). Strip the colon to make these match.
+ return s_codeSizeCommentsRegex.Replace(output, match => match.Groups[0].Value.Replace(match.Groups[1].Value, ""));
}
///
diff --git a/src/EditorFeatures/Test/MetadataAsSource/AbstractMetadataAsSourceTests.cs b/src/EditorFeatures/Test/MetadataAsSource/AbstractMetadataAsSourceTests.cs
index c781ca2c7db7a..a038518d7415e 100644
--- a/src/EditorFeatures/Test/MetadataAsSource/AbstractMetadataAsSourceTests.cs
+++ b/src/EditorFeatures/Test/MetadataAsSource/AbstractMetadataAsSourceTests.cs
@@ -21,7 +21,7 @@ namespace Microsoft.CodeAnalysis.Editor.UnitTests.MetadataAsSource
[UseExportProvider]
public abstract partial class AbstractMetadataAsSourceTests : IAsyncLifetime
{
- protected static readonly string ICSharpCodeDecompilerVersion = "7.1.0.6543";
+ protected static readonly string ICSharpCodeDecompilerVersion = "7.2.1.6856";
public virtual Task InitializeAsync()
{
diff --git a/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.CSharp.cs b/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.CSharp.cs
index 6ed5cb5b87700..a199092c28d14 100644
--- a/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.CSharp.cs
+++ b/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.CSharp.cs
@@ -208,167 +208,166 @@ public struct [|ValueTuple|] : IEquatable, IStructuralEquatable, ISt
using System.Collections;
using System.Runtime.InteropServices;
-namespace System
+namespace System;
+
+[StructLayout(LayoutKind.Sequential, Size = 1)]
+public struct [|ValueTuple|] : IEquatable, IStructuralEquatable, IStructuralComparable, IComparable, IComparable, ITupleInternal
{{
- [StructLayout(LayoutKind.Sequential, Size = 1)]
- public struct [|ValueTuple|] : IEquatable, IStructuralEquatable, IStructuralComparable, IComparable, IComparable, ITupleInternal
+ int ITupleInternal.Size => 0;
+
+ public override bool Equals(object obj)
{{
- int ITupleInternal.Size => 0;
+ return obj is ValueTuple;
+ }}
- public override bool Equals(object obj)
- {{
- return obj is ValueTuple;
- }}
+ public bool Equals(ValueTuple other)
+ {{
+ return true;
+ }}
- public bool Equals(ValueTuple other)
- {{
- return true;
- }}
+ bool IStructuralEquatable.Equals(object other, IEqualityComparer comparer)
+ {{
+ return other is ValueTuple;
+ }}
- bool IStructuralEquatable.Equals(object other, IEqualityComparer comparer)
+ int IComparable.CompareTo(object other)
+ {{
+ if (other == null)
{{
- return other is ValueTuple;
+ return 1;
}}
- int IComparable.CompareTo(object other)
+ if (!(other is ValueTuple))
{{
- if (other == null)
- {{
- return 1;
- }}
+ throw new ArgumentException(SR.ArgumentException_ValueTupleIncorrectType, ""other"");
+ }}
- if (!(other is ValueTuple))
- {{
- throw new ArgumentException(SR.ArgumentException_ValueTupleIncorrectType, ""other"");
- }}
+ return 0;
+ }}
- return 0;
- }}
+ public int CompareTo(ValueTuple other)
+ {{
+ return 0;
+ }}
- public int CompareTo(ValueTuple other)
+ int IStructuralComparable.CompareTo(object other, IComparer comparer)
+ {{
+ if (other == null)
{{
- return 0;
+ return 1;
}}
- int IStructuralComparable.CompareTo(object other, IComparer comparer)
+ if (!(other is ValueTuple))
{{
- if (other == null)
- {{
- return 1;
- }}
-
- if (!(other is ValueTuple))
- {{
- throw new ArgumentException(SR.ArgumentException_ValueTupleIncorrectType, ""other"");
- }}
-
- return 0;
+ throw new ArgumentException(SR.ArgumentException_ValueTupleIncorrectType, ""other"");
}}
- public override int GetHashCode()
- {{
- return 0;
- }}
+ return 0;
+ }}
- int IStructuralEquatable.GetHashCode(IEqualityComparer comparer)
- {{
- return 0;
- }}
+ public override int GetHashCode()
+ {{
+ return 0;
+ }}
- int ITupleInternal.GetHashCode(IEqualityComparer comparer)
- {{
- return 0;
- }}
+ int IStructuralEquatable.GetHashCode(IEqualityComparer comparer)
+ {{
+ return 0;
+ }}
- public override string ToString()
- {{
- return ""()"";
- }}
+ int ITupleInternal.GetHashCode(IEqualityComparer comparer)
+ {{
+ return 0;
+ }}
- string ITupleInternal.ToStringEnd()
- {{
- return "")"";
- }}
+ public override string ToString()
+ {{
+ return ""()"";
+ }}
- public static ValueTuple Create()
- {{
- return default(ValueTuple);
- }}
+ string ITupleInternal.ToStringEnd()
+ {{
+ return "")"";
+ }}
- public static ValueTuple Create(T1 item1)
- {{
- return new ValueTuple(item1);
- }}
+ public static ValueTuple Create()
+ {{
+ return default(ValueTuple);
+ }}
- public static (T1, T2) Create(T1 item1, T2 item2)
- {{
- return (item1, item2);
- }}
+ public static ValueTuple Create(T1 item1)
+ {{
+ return new ValueTuple(item1);
+ }}
- public static (T1, T2, T3) Create(T1 item1, T2 item2, T3 item3)
- {{
- return (item1, item2, item3);
- }}
+ public static (T1, T2) Create(T1 item1, T2 item2)
+ {{
+ return (item1, item2);
+ }}
- public static (T1, T2, T3, T4) Create(T1 item1, T2 item2, T3 item3, T4 item4)
- {{
- return (item1, item2, item3, item4);
- }}
+ public static (T1, T2, T3) Create(T1 item1, T2 item2, T3 item3)
+ {{
+ return (item1, item2, item3);
+ }}
- public static (T1, T2, T3, T4, T5) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5)
- {{
- return (item1, item2, item3, item4, item5);
- }}
+ public static (T1, T2, T3, T4) Create(T1 item1, T2 item2, T3 item3, T4 item4)
+ {{
+ return (item1, item2, item3, item4);
+ }}
- public static (T1, T2, T3, T4, T5, T6) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6)
- {{
- return (item1, item2, item3, item4, item5, item6);
- }}
+ public static (T1, T2, T3, T4, T5) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5)
+ {{
+ return (item1, item2, item3, item4, item5);
+ }}
- public static (T1, T2, T3, T4, T5, T6, T7) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7)
- {{
- return (item1, item2, item3, item4, item5, item6, item7);
- }}
+ public static (T1, T2, T3, T4, T5, T6) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6)
+ {{
+ return (item1, item2, item3, item4, item5, item6);
+ }}
- public static (T1, T2, T3, T4, T5, T6, T7, T8) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8)
- {{
- return new ValueTuple>(item1, item2, item3, item4, item5, item6, item7, Create(item8));
- }}
+ public static (T1, T2, T3, T4, T5, T6, T7) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7)
+ {{
+ return (item1, item2, item3, item4, item5, item6, item7);
+ }}
- internal static int CombineHashCodes(int h1, int h2)
- {{
- return ((h1 << 5) + h1) ^ h2;
- }}
+ public static (T1, T2, T3, T4, T5, T6, T7, T8) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8)
+ {{
+ return new ValueTuple>(item1, item2, item3, item4, item5, item6, item7, Create(item8));
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2), h3);
- }}
+ internal static int CombineHashCodes(int h1, int h2)
+ {{
+ return ((h1 << 5) + h1) ^ h2;
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2), CombineHashCodes(h3, h4));
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2), h3);
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), h5);
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2), CombineHashCodes(h3, h4));
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6));
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), h5);
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7));
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6));
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7, h8));
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7));
+ }}
+
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7, h8));
}}
}}
#if false // {CSharpEditorResources.Decompilation_log}
diff --git a/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.VisualBasic.cs b/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.VisualBasic.cs
index abbb7c79c8164..ab4cdc2a8c6cb 100644
--- a/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.VisualBasic.cs
+++ b/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.VisualBasic.cs
@@ -126,101 +126,47 @@ End Class
using System.Runtime.InteropServices;
-namespace System
+namespace System;
+
+[Serializable]
+[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Delegate, Inherited = false)]
+[ComVisible(true)]
+public sealed class [|ObsoleteAttribute|] : Attribute
{{
- //
- // Summary:
- // Marks the program elements that are no longer in use. This class cannot be inherited.
- [Serializable]
- [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Interface | AttributeTargets.Delegate, Inherited = false)]
- [ComVisible(true)]
- [__DynamicallyInvokable]
- public sealed class [|ObsoleteAttribute|] : Attribute
- {{
- private string _message;
-
- private bool _error;
-
- //
- // Summary:
- // Gets the workaround message, including a description of the alternative program
- // elements.
- //
- // Returns:
- // The workaround text string.
- [__DynamicallyInvokable]
- public string Message
+ public string Message
+ {{
+ get
{{
- [__DynamicallyInvokable]
- get
- {{
- return _message;
- }}
+ /*Error: Empty body found. Decompiled assembly might be a reference assembly.*/
+ ;
}}
+ }}
- //
- // Summary:
- // Gets a Boolean value indicating whether the compiler will treat usage of the
- // obsolete program element as an error.
- //
- // Returns:
- // true if the obsolete element usage is considered an error; otherwise, false.
- // The default is false.
- [__DynamicallyInvokable]
- public bool IsError
+ public bool IsError
+ {{
+ get
{{
- [__DynamicallyInvokable]
- get
- {{
- return _error;
- }}
+ /*Error: Empty body found. Decompiled assembly might be a reference assembly.*/
+ ;
}}
+ }}
- //
- // Summary:
- // Initializes a new instance of the System.ObsoleteAttribute class with default
- // properties.
- [__DynamicallyInvokable]
- public ObsoleteAttribute()
- {{
- _message = null;
- _error = false;
- }}
+ public ObsoleteAttribute()
+ {{
+ /*Error: Empty body found. Decompiled assembly might be a reference assembly.*/
+ ;
+ }}
- //
- // Summary:
- // Initializes a new instance of the System.ObsoleteAttribute class with a specified
- // workaround message.
- //
- // Parameters:
- // message:
- // The text string that describes alternative workarounds.
- [__DynamicallyInvokable]
- public ObsoleteAttribute(string message)
- {{
- _message = message;
- _error = false;
- }}
+ public ObsoleteAttribute(string message)
+ {{
+ /*Error: Empty body found. Decompiled assembly might be a reference assembly.*/
+ ;
+ }}
- //
- // Summary:
- // Initializes a new instance of the System.ObsoleteAttribute class with a workaround
- // message and a Boolean value indicating whether the obsolete element usage is
- // considered an error.
- //
- // Parameters:
- // message:
- // The text string that describes alternative workarounds.
- //
- // error:
- // true if the obsolete element usage generates a compiler error; false if it generates
- // a compiler warning.
- [__DynamicallyInvokable]
- public ObsoleteAttribute(string message, bool error)
- {{
- _message = message;
- _error = error;
- }}
+ public ObsoleteAttribute(string message, bool error)
+ {{
+ /*Error: Empty body found. Decompiled assembly might be a reference assembly.*/
+ ;
}}
}}
#if false // {CSharpEditorResources.Decompilation_log}
@@ -289,167 +235,166 @@ End Structure
using System.Collections;
using System.Runtime.InteropServices;
-namespace System
+namespace System;
+
+[StructLayout(LayoutKind.Sequential, Size = 1)]
+public struct [|ValueTuple|] : IEquatable, IStructuralEquatable, IStructuralComparable, IComparable, IComparable, ITupleInternal
{{
- [StructLayout(LayoutKind.Sequential, Size = 1)]
- public struct [|ValueTuple|] : IEquatable, IStructuralEquatable, IStructuralComparable, IComparable, IComparable, ITupleInternal
+ int ITupleInternal.Size => 0;
+
+ public override bool Equals(object obj)
{{
- int ITupleInternal.Size => 0;
+ return obj is ValueTuple;
+ }}
- public override bool Equals(object obj)
- {{
- return obj is ValueTuple;
- }}
+ public bool Equals(ValueTuple other)
+ {{
+ return true;
+ }}
- public bool Equals(ValueTuple other)
- {{
- return true;
- }}
+ bool IStructuralEquatable.Equals(object other, IEqualityComparer comparer)
+ {{
+ return other is ValueTuple;
+ }}
- bool IStructuralEquatable.Equals(object other, IEqualityComparer comparer)
+ int IComparable.CompareTo(object other)
+ {{
+ if (other == null)
{{
- return other is ValueTuple;
+ return 1;
}}
- int IComparable.CompareTo(object other)
+ if (!(other is ValueTuple))
{{
- if (other == null)
- {{
- return 1;
- }}
+ throw new ArgumentException(SR.ArgumentException_ValueTupleIncorrectType, ""other"");
+ }}
- if (!(other is ValueTuple))
- {{
- throw new ArgumentException(SR.ArgumentException_ValueTupleIncorrectType, ""other"");
- }}
+ return 0;
+ }}
- return 0;
- }}
+ public int CompareTo(ValueTuple other)
+ {{
+ return 0;
+ }}
- public int CompareTo(ValueTuple other)
+ int IStructuralComparable.CompareTo(object other, IComparer comparer)
+ {{
+ if (other == null)
{{
- return 0;
+ return 1;
}}
- int IStructuralComparable.CompareTo(object other, IComparer comparer)
+ if (!(other is ValueTuple))
{{
- if (other == null)
- {{
- return 1;
- }}
-
- if (!(other is ValueTuple))
- {{
- throw new ArgumentException(SR.ArgumentException_ValueTupleIncorrectType, ""other"");
- }}
-
- return 0;
+ throw new ArgumentException(SR.ArgumentException_ValueTupleIncorrectType, ""other"");
}}
- public override int GetHashCode()
- {{
- return 0;
- }}
+ return 0;
+ }}
- int IStructuralEquatable.GetHashCode(IEqualityComparer comparer)
- {{
- return 0;
- }}
+ public override int GetHashCode()
+ {{
+ return 0;
+ }}
- int ITupleInternal.GetHashCode(IEqualityComparer comparer)
- {{
- return 0;
- }}
+ int IStructuralEquatable.GetHashCode(IEqualityComparer comparer)
+ {{
+ return 0;
+ }}
- public override string ToString()
- {{
- return ""()"";
- }}
+ int ITupleInternal.GetHashCode(IEqualityComparer comparer)
+ {{
+ return 0;
+ }}
- string ITupleInternal.ToStringEnd()
- {{
- return "")"";
- }}
+ public override string ToString()
+ {{
+ return ""()"";
+ }}
- public static ValueTuple Create()
- {{
- return default(ValueTuple);
- }}
+ string ITupleInternal.ToStringEnd()
+ {{
+ return "")"";
+ }}
- public static ValueTuple Create(T1 item1)
- {{
- return new ValueTuple(item1);
- }}
+ public static ValueTuple Create()
+ {{
+ return default(ValueTuple);
+ }}
- public static (T1, T2) Create(T1 item1, T2 item2)
- {{
- return (item1, item2);
- }}
+ public static ValueTuple Create(T1 item1)
+ {{
+ return new ValueTuple(item1);
+ }}
- public static (T1, T2, T3) Create(T1 item1, T2 item2, T3 item3)
- {{
- return (item1, item2, item3);
- }}
+ public static (T1, T2) Create(T1 item1, T2 item2)
+ {{
+ return (item1, item2);
+ }}
- public static (T1, T2, T3, T4) Create(T1 item1, T2 item2, T3 item3, T4 item4)
- {{
- return (item1, item2, item3, item4);
- }}
+ public static (T1, T2, T3) Create(T1 item1, T2 item2, T3 item3)
+ {{
+ return (item1, item2, item3);
+ }}
- public static (T1, T2, T3, T4, T5) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5)
- {{
- return (item1, item2, item3, item4, item5);
- }}
+ public static (T1, T2, T3, T4) Create(T1 item1, T2 item2, T3 item3, T4 item4)
+ {{
+ return (item1, item2, item3, item4);
+ }}
- public static (T1, T2, T3, T4, T5, T6) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6)
- {{
- return (item1, item2, item3, item4, item5, item6);
- }}
+ public static (T1, T2, T3, T4, T5) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5)
+ {{
+ return (item1, item2, item3, item4, item5);
+ }}
- public static (T1, T2, T3, T4, T5, T6, T7) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7)
- {{
- return (item1, item2, item3, item4, item5, item6, item7);
- }}
+ public static (T1, T2, T3, T4, T5, T6) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6)
+ {{
+ return (item1, item2, item3, item4, item5, item6);
+ }}
- public static (T1, T2, T3, T4, T5, T6, T7, T8) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8)
- {{
- return new ValueTuple>(item1, item2, item3, item4, item5, item6, item7, Create(item8));
- }}
+ public static (T1, T2, T3, T4, T5, T6, T7) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7)
+ {{
+ return (item1, item2, item3, item4, item5, item6, item7);
+ }}
- internal static int CombineHashCodes(int h1, int h2)
- {{
- return ((h1 << 5) + h1) ^ h2;
- }}
+ public static (T1, T2, T3, T4, T5, T6, T7, T8) Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8)
+ {{
+ return new ValueTuple>(item1, item2, item3, item4, item5, item6, item7, Create(item8));
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2), h3);
- }}
+ internal static int CombineHashCodes(int h1, int h2)
+ {{
+ return ((h1 << 5) + h1) ^ h2;
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2), CombineHashCodes(h3, h4));
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2), h3);
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), h5);
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2), CombineHashCodes(h3, h4));
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6));
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), h5);
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7));
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6));
+ }}
- internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8)
- {{
- return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7, h8));
- }}
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7));
+ }}
+
+ internal static int CombineHashCodes(int h1, int h2, int h3, int h4, int h5, int h6, int h7, int h8)
+ {{
+ return CombineHashCodes(CombineHashCodes(h1, h2, h3, h4), CombineHashCodes(h5, h6, h7, h8));
}}
}}
#if false // {CSharpEditorResources.Decompilation_log}
diff --git a/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.cs b/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.cs
index 2be095d1d6494..da79213645084 100644
--- a/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.cs
+++ b/src/EditorFeatures/Test/MetadataAsSource/MetadataAsSourceTests.cs
@@ -935,11 +935,10 @@ End Class
// Decompiled with ICSharpCode.Decompiler {ICSharpCodeDecompilerVersion}
#endregion
-namespace N
+namespace N;
+
+public class [|C|]
{{
- public class [|C|]
- {{
- }}
}}
#if false // {CSharpEditorResources.Decompilation_log}
{string.Format(CSharpEditorResources._0_items_in_cache, 6)}
@@ -953,11 +952,10 @@ public class [|C|]
// Decompiled with ICSharpCode.Decompiler {ICSharpCodeDecompilerVersion}
#endregion
-namespace N
+namespace N;
+
+public class [|C|]
{{
- public class [|C|]
- {{
- }}
}}
#if false // {CSharpEditorResources.Decompilation_log}
{string.Format(CSharpEditorResources._0_items_in_cache, 9)}
diff --git a/src/VisualStudio/IntegrationTest/New.IntegrationTests/CSharp/CSharpGoToDefinition.cs b/src/VisualStudio/IntegrationTest/New.IntegrationTests/CSharp/CSharpGoToDefinition.cs
index 181ac950c2402..690a8abf7d157 100644
--- a/src/VisualStudio/IntegrationTest/New.IntegrationTests/CSharp/CSharpGoToDefinition.cs
+++ b/src/VisualStudio/IntegrationTest/New.IntegrationTests/CSharp/CSharpGoToDefinition.cs
@@ -133,8 +133,8 @@ public override string ToString()
var actual = await TestServices.Editor.GetOutliningSpansAsync(HangMitigatingCancellationToken);
// When collapsing, not everything is collapsed (eg, namespace and class aren't), but most things are
- Assert.Equal(32, actual.Length);
- Assert.Equal(8, actual.Count(s => !s.Collapsed));
+ Assert.Equal(31, actual.Length);
+ Assert.Equal(7, actual.Count(s => !s.Collapsed));
}
[IdeFact]
@@ -163,7 +163,7 @@ public override string ToString()
var actual = await TestServices.Editor.GetOutliningSpansAsync(HangMitigatingCancellationToken);
- Assert.Equal(32, actual.Length);
+ Assert.Equal(31, actual.Length);
Assert.Equal(1, actual.Count(s => s.Collapsed));
}