Examples of errors detected by the V3053 diagnostic
V3053. An excessive expression. Examine the substrings "abc" and "abcd".
AvaloniaUI
V3053 An excessive expression. Examine the substrings 'InitializeComponent' and 'GeneratedInitializeComponent'. InitializeComponentCode.cs 27
public static async Task<string> Load(string generatedCodeResourceName)
{
var assembly = typeof(XamlXNameResolverTests).Assembly;
var fullResourceName = assembly
.GetManifestResourceNames()
.First(name => name.Contains("InitializeComponent") // <=
&& name.Contains("GeneratedInitializeComponent") // <=
&& name.EndsWith(generatedCodeResourceName));
....
}
Azure SDK for .NET
V3053 An excessive expression. Examine the substrings 'IList' and 'List'. PropertyData.cs 157
public class PropertyData
{
....
public bool IsTypeCollection => this.Type.Contains("IList") ||
this.Type.Contains("IEnumerable") ||
this.Type.Contains("List") || // <=
this.Type.Contains("IReadOnlyList"); // <=
}
Similar errors can be found in some other places:
- V3053 An excessive expression. Examine the substrings 'List' and 'IReadOnlyList'. PropertyData.cs 158
Unity C# reference source code
V3053 An excessive expression. Examine the substrings 'Windows.dll' and 'Windows.'. AssemblyHelper.cs 84
static private bool CouldBelongToDotNetOrWindowsRuntime(string
assemblyPath)
{
return assemblyPath.IndexOf("mscorlib.dll") != -1 ||
assemblyPath.IndexOf("System.") != -1 ||
assemblyPath.IndexOf("Windows.dll") != -1 || // <=
assemblyPath.IndexOf("Microsoft.") != -1 ||
assemblyPath.IndexOf("Windows.") != -1 || // <=
assemblyPath.IndexOf("WinRTLegacy.dll") != -1 ||
assemblyPath.IndexOf("platform.dll") != -1;
}
Unity C# reference source code
V3053 An excessive expression. Examine the substrings 'UnityEngine.' and 'UnityEngine.SetupCoroutine'. StackTrace.cs 43
static bool IsSystemStacktraceType(object name)
{
string casted = (string)name;
return casted.StartsWith("UnityEditor.") ||
casted.StartsWith("UnityEngine.") ||
casted.StartsWith("System.") ||
casted.StartsWith("UnityScript.Lang.") ||
casted.StartsWith("Boo.Lang.") ||
casted.StartsWith("UnityEngine.SetupCoroutine");
}
PascalABC.NET
V3053 An excessive expression. Examine the substrings 'reduction' and 'reduction('. TreeConverter OpenMP.cs 267
private void ProcessClauses(string Text, ....)
{
....
if (....)
{
....
}
else if (AllowReduction &&
(Text.StartsWith("reduction") ||
Text.StartsWith("reduction(")))
{
....
}
....
}
SharpDevelop
V3053 An excessive expression. Examine the substrings '/debug' and '/debugport'. NDebugger.cs 287
public bool IsKernelDebuggerEnabled {
get {
....
if (systemStartOptions.Contains("/debug") ||
systemStartOptions.Contains("/crashdebug") ||
systemStartOptions.Contains("/debugport") ||
systemStartOptions.Contains("/baudrate")) {
return true;
}
....
}
}
Orchard CMS
V3053 An excessive expression. Examine the substrings ' ' and ' \t'. ExtensionHarvester.cs 335
private static bool IsFeatureFieldDeclaration(string line) {
if (line.StartsWith("\t\t") ||
line.StartsWith("\t ") ||
line.StartsWith(" ") ||
line.StartsWith(" \t"))
return true;
return false;
}
GitExtensions
V3053 An excessive expression. Examine the substrings 'notepad' and 'notepad++'. GitCommands GitModule.cs 691
public void EditNotes(string revision)
{
string editor = GetEffectivePathSetting("core.editor")
.ToLower();
if (editor.Contains("gitextensions") ||
editor.Contains("notepad") ||
editor.Contains("notepad++")) // <=
{
RunGitCmd("notes edit " + revision);
}
....
}