V3020. An unconditional 'break/continue/return/goto' within a loop.
V3020 An unconditional 'return' within a loop. Enumerable.cs 517
public override bool MoveNext()
{
switch (state)
{
case 1:
_enumerator = _source.GetEnumerator();
state = 2;
goto case 2;
case 2:
while (_enumerator.MoveNext())
{
current = _selector(_enumerator.Current);
return true;
}
Dispose();
break;
}
return false;
}
Similar errors can be found in some other places:
V3020 An unconditional 'continue' within a loop. Sandbox.Game MyRenderComponentThrust.cs 109
public override void Draw()
{
....
foreach (var flame in m_thrust.Flames)
{
if (m_thrust.CubeGrid.Physics == null)
continue;
....
if (m_landingEffect != null)
{
m_landingEffect.Stop(true);
m_landingEffect = null;
--m_landingEffectCount;
}
continue; // <=
....
if (m_landingEffect == null)
continue;
....
}
}
V3020 An unconditional 'break' within a loop. AirWizard.cs 1760
private void ExtensionBrowseButton_Click(....)
{
....
foreach (var existingExtension in _extensions)
{
if (existingExtension.ExtensionId
== extensionId) extension = existingExtension;
break;
}
....
}
V3020 An unconditional 'throw' within a loop. System.Data.Linq-net_4_x XmlMappingSource.cs 180
public void ReadEmptyContent(XmlReader r, string name)
{
....
for (r.MoveToContent();
r.NodeType != XmlNodeType.EndElement;
r.MoveToContent())
{
if (r.NamespaceURI != DbmlNamespace)
r.Skip();
throw UnexpectedItemError(r); // <=
}
....
}
V3020 An unconditional 'break' within a loop. XmlCacheProvider.cs 433
public TvdbSeries LoadSeriesFromCache(int seriesId)
{
....
foreach (TvdbEpisode e in series.Episodes.Where(....))
{
if (epImageFile.Contains("thumb"))
e.Banner.LoadThumb(Image.FromFile(epImageFile));
else
e.Banner.LoadBanner(Image.FromFile(epImageFile));
break;
}
....
}
V3020 CWE-670 An unconditional 'return' within a loop. PolygonCollider2DEditor.cs 96
private void HandleDragAndDrop(Rect targetRect)
{
....
foreach (....)
{
....
if (....)
{
....
}
return;
}
....
}
V3020 An unconditional 'break' within a loop. Compiler DefaultFactorManager.cs 474
private static Set<StochasticityPattern>
IntersectPatterns(IEnumerable<StochasticityPattern> patterns)
{
Set<StochasticityPattern> result = new Set<StochasticityPattern>();
result.AddRange(patterns);
bool changed;
do
{
int count = result.Count;
AddIntersections(result);
changed = (result.Count != count);
break;
} while (changed);
return result;
}
Similar errors can be found in some other places:
V3020 An unconditional 'return' within a loop. CodeUtils.cs 262
public static string GetExpression(FindTextArgs args, bool skipStrings)
{
while (args.StartIndex < args.Text.Length)
{
if (!FindMatchingBrackets(args, skipStrings))
break;
return args.FoundText;
}
return "";
}
V3020 An unconditional 'break' within a loop. NodePool.cs 189
public IEnumerable<KeyValuePair<int, List<T>>> GetUnfrozenDisplayedElements()
{
foreach (var item in this.generatedContainers)
{
foreach (var pair in item.Value)
{
if (!pair.IsFrozen)
{
yield return item;
}
break;
}
}
}
If you feel like the New Year just came, and you missed the first half of January, then all this ...