dotnet/roslyn
Vedi su GitHubRemove unused parameter (IDE0060) on parameter used by [InterpolatedStringHandlerArgument]
Open
#62.077 aperta il 22 giu 2022
Area-IDEBugFeature - IDE0060IDE-CodeStylehelp wanted
Metriche repository
- Star
- (20.414 star)
- Metriche merge PR
- (Merge medio 6g 17h) (256 PR mergiate in 30 g)
Descrizione
Version Used: Visual Studio 2022 Community 17.2.4 Microsoft (R) Visual C# Compiler version 4.2.0-4.22281.5 (8d3180e5)
Steps to Reproduce:
using System;
using System.Runtime.CompilerServices;
using System.Text;
public class Program
{
public void Test(IFormatProvider provider)
{
AppendLine(provider, $"test");
}
// unexpected IDE0060 on 'provider'
public void AppendLine(IFormatProvider provider, [InterpolatedStringHandlerArgument("provider")] ref DebugMarkerInterpolatedStringHandler name)
{
Console.WriteLine(name.GetString());
}
}
[InterpolatedStringHandler]
public unsafe ref struct DebugMarkerInterpolatedStringHandler
{
private StringBuilder.AppendInterpolatedStringHandler _innerHandler;
private StringBuilder _stringBuilder;
public DebugMarkerInterpolatedStringHandler(
int literalLength,
int formattedCount,
IFormatProvider provider)
{
_stringBuilder = new StringBuilder();
_innerHandler = new StringBuilder.AppendInterpolatedStringHandler(literalLength, formattedCount, _stringBuilder, provider);
}
public string GetString()
{
return _stringBuilder.ToString();
}
public void AppendLiteral(string value) => _innerHandler.AppendLiteral(value);
public void AppendFormatted<T>(T value) => _innerHandler.AppendFormatted(value);
public void AppendFormatted<T>(T value, string format) => _innerHandler.AppendFormatted(value, format);
public void AppendFormatted<T>(T value, int alignment) => _innerHandler.AppendFormatted(value, alignment);
public void AppendFormatted<T>(T value, int alignment, string format) => _innerHandler.AppendFormatted(value, alignment, format);
public void AppendFormatted(ReadOnlySpan<char> value) => _innerHandler.AppendFormatted(value);
public void AppendFormatted(ReadOnlySpan<char> value, int alignment = 0, string format = null) => _innerHandler.AppendFormatted(value, alignment, format);
public void AppendFormatted(string value) => _innerHandler.AppendFormatted(value);
public void AppendFormatted(string value, int alignment = 0, string format = null) => _innerHandler.AppendFormatted(value, alignment, format);
public void AppendFormatted(object value, int alignment = 0, string format = null) => _innerHandler.AppendFormatted(value, alignment, format);
}
Expected Behavior: No complaint from compiler.
Actual Behavior: IDE0060 appears even though the format provider is used.
cc @333fred