Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Year PVS-Studio 6.00 Release: Scanning Roslyn #7677

Closed
AndreyKarpov opened this issue Dec 23, 2015 · 11 comments
Closed

New Year PVS-Studio 6.00 Release: Scanning Roslyn #7677

AndreyKarpov opened this issue Dec 23, 2015 · 11 comments

Comments

@AndreyKarpov
Copy link

The long wait is finally over. We have released a static code analyzer PVS-Studio 6.00 that supports analysis of C# projects. Now it can analyze projects written in languages C, C++, C++/CLI, C++/CX, and C#. For this release, we have prepared a report about analysis of open-source project Roslyn. It is thanks to Roslyn that we were able to add the C# support to PVS-Studio, and we are very grateful to Microsoft for this project.

Article: http://www.viva64.com/en/b/0363/

@pvs-studio
Copy link

The log file is available here: https://www.dropbox.com/s/6l6zw71eqkbps0x/Roslyn.zip?dl=0

@jmarolf
Copy link
Contributor

jmarolf commented Dec 24, 2015

Got the log, thanks. 246 errors. Will take a look after the holidays

V3002: The switch statement does not cover all values of the 'CommandIds' enum: BreakLine, ExecuteInInteractiveWindow, CopyToInteractiveWindow. [src\InteractiveWindow\VisualStudio\VsInteractiveWindowCommandFilter.cs : 418]
V3002: The switch statement does not cover all values of the 'ConversionKind' enum: InterpolatedString. [src\Compilers\CSharp\Test\Symbol\Compilation\GetSemanticInfoTests.cs : 652]
V3002: The switch statement does not cover all values of the 'Dependency' enum: DependsMask. [src\Compilers\CSharp\Portable\Binder\Semantics\OverloadResolution\MethodTypeInference.cs : 315]
V3002: The switch statement does not cover all values of the 'DisplayClassVariableKind' enum: This. [src\ExpressionEvaluator\CSharp\Source\ExpressionCompiler\CompilationContext.cs : 1099]
V3002: The switch statement does not cover all values of the 'DkmClrDebuggerBrowsableAttributeState' enum: Collapsed. [src\ExpressionEvaluator\Core\Source\ResultProvider\Expansion\MemberExpansion.cs : 176]
V3002: The switch statement does not cover all values of the 'FixAllScope' enum: Custom. [src\Workspaces\Core\Portable\CodeFixes\FixAllOccurrences\BatchFixAllProvider.cs : 254]
V3002: The switch statement does not cover all values of the 'InlineRenameReplacementKind' enum: NoConflict, Complexified. [src\EditorFeatures\Core\Implementation\InlineRename\Dashboard\DashboardViewModel.cs : 71]
V3002: The switch statement does not cover all values of the 'LayoutKind' enum: Auto. [src\Compilers\Core\Portable\PEWriter\MetadataWriter.cs : 1631]
V3002: The switch statement does not cover all values of the 'NotifyCollectionChangedAction' enum: Move. [src\EditorFeatures\Core\Shared\Tagging\EventSources\TaggerEventSources.CompletionClosedEventSource.cs : 49]
V3002: The switch statement does not cover all values of the 'ObjectListKind' enum: None, Members. [src\VisualStudio\Core\Def\Implementation\Library\ObjectBrowser\ObjectList.cs : 408]
V3002: The switch statement does not cover all values of the 'ObjectListKind' enum: None, Projects. [src\VisualStudio\Core\Def\Implementation\Library\ObjectBrowser\ObjectList.cs : 519]
V3002: The switch statement does not cover all values of the 'PathKind' enum: Relative, RelativeToCurrentDirectory, RelativeToCurrentParent. [src\Compilers\Core\Portable\FileSystem\PathUtilities.cs : 323]
V3002: The switch statement does not cover all values of the 'PrimitiveTypeCode' enum: NotPrimitive, Invalid. [src\Compilers\Core\Portable\PEWriter\MetadataWriter.cs : 5056]
V3002: The switch statement does not cover all values of the 'ReplSpanKind' enum: Prompt. [src\InteractiveWindow\Editor\InteractiveWindow.UIThreadOnly.cs : 2639]
V3002: The switch statement does not cover all values of the 'ScopeType' enum: Variable, TryCatchFinally, StateMachineVariable. [src\Compilers\Core\Portable\CodeGen\LocalScopeManager.cs : 73]
V3002: The switch statement does not cover all values of the 'SearchKind' enum: Custom. [src\Workspaces\Core\Portable\FindSymbols\SymbolFinder_Declarations.cs : 62]
V3002: The switch statement does not cover all values of the 'SerializationTypeCode' enum: Invalid, SZArray. [src\Compilers\Core\Portable\MetadataReader\MetadataDecoder.cs : 1157]
V3002: The switch statement does not cover all values of the 'SourceCodeKind' enum: Interactive. [src\EditorFeatures\CSharpTest2\Recommendations\RecommenderTests.cs : 170]
V3002: The switch statement does not cover all values of the 'SourceCodeKind' enum: Interactive. [src\EditorFeatures\CSharpTest2\Recommendations\RecommenderTests.cs : 191]
V3002: The switch statement does not cover all values of the 'TerminatorState' enum: EndOfFile. [src\Compilers\CSharp\Portable\Parser\LanguageParser.cs : 151]
V3002: The switch statement does not cover all values of the 'TypeMemberVisibility' enum: Default, Other, Mask. [src\Compilers\Core\Portable\PEWriter\MetadataWriter.cs : 1706]
V3002: The switch statement does not cover all values of the 'TypeMemberVisibility' enum: Default, Other, Mask. [src\Compilers\Core\Portable\PEWriter\MetadataWriter.cs : 1757]
V3004: The 'then' statement is equivalent to the 'else' statement. [src\Compilers\CSharp\Test\Symbol\Compilation\GetSemanticInfoTests.cs : 2269]
V3005: The 'Name' variable is assigned to itself. [src\Features\Core\Portable\Shared\TestHooks\AsynchronousOperationListener.DiagnosticAsyncToken.cs : 32]
V3008: The 'assemblies' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 43, 35. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\BaseTypeResolution.cs : 43]
V3008: The 'attrSym' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1157, 1146. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\LoadingAttributes.cs : 1157]
V3008: The 'bindInfo' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1657, 1652. [src\Compilers\CSharp\Test\Symbol\Compilation\GetSemanticInfoTests.cs : 1657]
V3008: The 'comp' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 110, 95. [src\Compilers\CSharp\Test\Syntax\Diagnostics\DiagnosticTest.cs : 110]
V3008: The 'compilation' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 116, 107. [src\Features\Core\Portable\ImplementInterface\AbstractImplementInterfaceService.DisposePatternCodeAction.cs : 116]
V3008: The 'constants' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 217, 204. [src\Debugging\Microsoft.DiaSymReader.PortablePdb.Tests\SymReaderTests.cs : 217]

V3008: The 'conv' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 712, 705. [src\Compilers\CSharp\Test\Semantic\Semantics\LambdaTests.cs : 712]
V3008: The 'count' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 317, 314. [src\Debugging\Microsoft.DiaSymReader.PortablePdb\SymReader.cs : 317]
V3008: The 'declaration' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 96, 78. [src\Features\CSharp\Portable\EncapsulateField\CSharpEncapsulateFieldService.cs : 96]
V3008: The 'exitCode' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 3865, 3860. [src\Compilers\CSharp\Test\CommandLine\CommandLineTests.cs : 3865]
V3008: The 'info' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 4055, 4054. [src\Compilers\CSharp\Test\Symbol\Compilation\SemanticModelGetDeclaredSymbolAPITests.cs : 4055]
V3008: The 'newSolution' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 311, 307. [src\Workspaces\Core\Portable\Workspace\Workspace.cs : 311]
V3008: The 'options' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 344, 340. [src\Scripting\CSharpTest\ObjectFormatterTests.cs : 344]
~~V3008: The 'output' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 7231, 7228. [src\Compilers\CSharp\Test\CommandLine\CommandLineTests.cs : 7231]~~
~~V3008: The 'output' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 7238, 7235. [src\Compilers\CSharp\Test\CommandLine\CommandLineTests.cs : 7238]~~
~~V3008: The 'output' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 7298, 7295. [src\Compilers\CSharp\Test\CommandLine\CommandLineTests.cs : 7298]~~
~~V3008: The 'output' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 7305, 7302. [src\Compilers\CSharp\Test\CommandLine\CommandLineTests.cs : 7305]~~
~~V3008: The 'output' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 7335, 7332. [src\Compilers\CSharp\Test\CommandLine\CommandLineTests.cs : 7335]~~
~~V3008: The 'output' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 7476, 7473. [src\Compilers\CSharp\Test\CommandLine\CommandLineTests.cs : 7476]~~
~~V3008: The 'parsedArgs' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1333, 1330. [src\Compilers\CSharp\Test\CommandLine\CommandLineTests.cs : 1333]~~
V3008: The 'pParameters' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 86, 80. [src\Compilers\CSharp\Test\Symbol\Symbols\Source\CompletionTests.cs : 86]
V3008: The 'pType' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 85, 79. [src\Compilers\CSharp\Test\Symbol\Symbols\Source\CompletionTests.cs : 85]
V3008: The 'result' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 190, 162. [src\ExpressionEvaluator\CSharp\Test\ExpressionCompiler\PseudoVariableTests.cs : 190]
V3008: The 'result' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 292, 288. [src\ExpressionEvaluator\CSharp\Test\ExpressionCompiler\ExpressionCompilerTests.cs : 292]
V3008: The 'result' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 4967, 4962. [src\ExpressionEvaluator\CSharp\Test\ExpressionCompiler\ExpressionCompilerTests.cs : 4967]
V3008: The 'result' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 5014, 5001. [src\ExpressionEvaluator\CSharp\Test\ExpressionCompiler\ExpressionCompilerTests.cs : 5014]
V3008: The 'result' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 506, 501. [src\Compilers\CSharp\Portable\Binder\Binder_Invocation.cs : 506]
V3008: The 'result' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 531, 529. [src\ExpressionEvaluator\CSharp\Test\ExpressionCompiler\ExpressionCompilerTests.cs : 531]
V3008: The 'retVal' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 324, 313. [src\Test\Utilities\Shared\Diagnostics\DiagnosticExtensions.cs : 324]
V3008: The 'solution' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 173, 163. [src\EditorFeatures\Test\Workspaces\ProjectCacheHostServiceFactoryTests.cs : 173]
V3008: The 'solution' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 636, 625. [src\EditorFeatures\CSharpTest\Workspaces\WorkspaceTests.cs : 636]
V3008: The 'solution' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 95, 89. [src\EditorFeatures\CSharpTest\Workspaces\WorkspaceTests.cs : 95]
V3008: The 'solutionNeedingProperty' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 192, 184. [src\Features\Core\Portable\EncapsulateField\AbstractEncapsulateFieldService.cs : 192]
V3008: The 'synchronousRequestThread' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 90, 85. [src\Workspaces\CoreTest\UtilityTest\AsyncLazyTests.cs : 90]
V3008: The 'testData' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 1101, 1098. [src\ExpressionEvaluator\CSharp\Test\ExpressionCompiler\DeclarationTests.cs : 1101]
V3008: The 'testData' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 242, 240. [src\ExpressionEvaluator\CSharp\Test\ExpressionCompiler\ReferencedModulesTests.cs : 242]
V3008: The 'testData' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 558, 551. [src\ExpressionEvaluator\CSharp\Test\ExpressionCompiler\PseudoVariableTests.cs : 558]
V3008: The 'unused' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 335, 327. [src\EditorFeatures\CSharpTest\Interactive\NavigateTo\InteractiveNavigateToTests.cs : 335]
V3008: The 'unused' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 433, 425. [src\EditorFeatures\CSharpTest\NavigateTo\NavigateToTests.cs : 433]
V3008: The 'unused1' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 286, 269. [src\Compilers\Core\CodeAnalysisTest\Diagnostics\DiagnosticLocalizationTests.cs : 286]
V3008: The 'unused2' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 287, 270. [src\Compilers\Core\CodeAnalysisTest\Diagnostics\DiagnosticLocalizationTests.cs : 287]
V3008: The 'unused3' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 288, 271. [src\Compilers\Core\CodeAnalysisTest\Diagnostics\DiagnosticLocalizationTests.cs : 288]
V3008: The 'us' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 205, 204. [src\Test\Utilities\Desktop\Win32Res.cs : 205]
V3008: The 'value' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 390, 379. [src\Compilers\CSharp\Portable\Symbols\Source\SourceLocalSymbol.cs : 390]
V3008: The 'verifier' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 172, 149. [src\Compilers\CSharp\Test\Semantic\Semantics\NullableTests.cs : 172]
V3009: It's odd that this method always returns one and the same value of 'true'. [src\Compilers\CSharp\Portable\Symbols\Source\SourceMethodSymbol.cs : 623]
V3010: The return value of function 'Single' is required to be utilized. [src\Workspaces\CoreTest\SolutionTests\SolutionTests.cs : 237]
V3010: The return value of function 'ToArray' is required to be utilized. [src\Compilers\Core\CodeAnalysisTest\InternalUtilities\WeakListTests.cs : 127]
V3010: The return value of function 'ToArray' is required to be utilized. [src\Compilers\Core\CodeAnalysisTest\InternalUtilities\WeakListTests.cs : 163]
V3010: The return value of function 'ToArray' is required to be utilized. [src\Compilers\CSharp\Test\Syntax\Parsing\ParsingErrorRecoveryTests.cs : 6582]
V3010: The return value of function 'ToArray' is required to be utilized. [src\Compilers\CSharp\Test\Syntax\Parsing\ParsingErrorRecoveryTests.cs : 6597]
V3010: The return value of function 'ToArray' is required to be utilized. [src\Compilers\CSharp\Test\Syntax\Parsing\ParsingErrorRecoveryTests.cs : 6815]
V3010: The return value of function 'ToArray' is required to be utilized. [src\Compilers\CSharp\Test\Syntax\Parsing\ParsingErrorRecoveryTests.cs : 6829]
V3011: Two opposite conditions were encountered. The second condition is always false. Check lines: 589, 585. [src\Compilers\Core\Portable\ReferenceManager\CommonReferenceManager.Binding.cs : 589]
~~V3012: The '?:' operator, regardless of its conditional expression, always returns one and the same value. [src\Features\Core\Portable\CodeFixes\Suppression\AbstractSuppressionCodeFixProvider.RemoveSuppressionCodeAction_Pragma.cs : 177]~~
~~V3012: The '?:' operator, regardless of its conditional expression, always returns one and the same value: ScriptingResources.PlusAdditionalError. [src\Scripting\Core\Hosting\CommandLine\CommandLineRunner.cs : 428]~~
V3013: It is odd that the body of 'AnonymousTypes_Nested1' function is fully equivalent to the body of 'AnonymousTypes_Nested2' function (4877, line 5000). [src\Compilers\CSharp\Test\Emit\Emit\EditAndContinue\EditAndContinueTests.cs : 4877]
V3013: It is odd that the body of 'ApplyDocumentTextChanged' function is fully equivalent to the body of 'ApplyAdditionalDocumentTextChanged' function. [src\VisualStudio\Core\Def\Implementation\ProjectSystem\VisualStudioWorkspaceImpl.cs : 768]
V3013: It is odd that the body of 'AsToken' function is fully equivalent to the body of 'AsILOffset' function (1514, line 1519). [src\Test\PdbUtilities\Pdb\PdbToXml.cs : 1514]
V3013: It is odd that the body of 'AttributeContainsGeneric' function is fully equivalent to the body of 'CS0404ERR_GenericAttributeError' function. [src\Compilers\CSharp\Test\Emit\Attributes\AttributeTests.cs : 3889]
V3013: It is odd that the body of 'CanConsiderMembers' function is fully equivalent to the body of 'CanConsiderLocals' function (164, line 169). [src\Compilers\CSharp\Portable\Binder\LookupOptions.cs : 164]
V3013: It is odd that the body of 'CanDelete' function is fully equivalent to the body of 'CanRename' function (110, line 122). [src\VisualStudio\Core\Def\Implementation\Library\AbstractObjectList.cs : 110]
V3013: It is odd that the body of 'CastExpression' function is fully equivalent to the body of 'ConvertExpression' function (3602, line 3607). [src\Workspaces\CSharp\Portable\CodeGeneration\CSharpSyntaxGenerator.cs : 3602]
V3013: It is odd that the body of 'ClearAllErrors' function is fully equivalent to the body of 'ClearErrors' function (75, line 184). [src\VisualStudio\Core\Def\Implementation\TaskList\ProjectExternalErrorReporter.cs : 75]
V3013: It is odd that the body of 'CloseLocalScope' function is fully equivalent to the body of 'CloseStateMachineScope' function (1150, line 1169). [src\Compilers\Core\Portable\CodeGen\ILBuilder.cs : 1150]
V3013: It is odd that the body of 'Comment8' function is fully equivalent to the body of 'Comment9' function (176, line 201). [src\Workspaces\CSharpTest\Formatting\FormattingTriviaTests.cs : 176]
V3013: It is odd that the body of 'ConnectToWorkspace' function is fully equivalent to the body of 'DisconnectFromWorkspace' function (17, line 22). [src\EditorFeatures\Core\Shared\Tagging\EventSources\TaggerEventSources.WorkspaceRegistrationChangedEventSource.cs : 17]
V3013: It is odd that the body of 'ConstFieldNoGetter' function is fully equivalent to the body of 'EncapsulateFieldNamedValue' function (534, line 562). [src\EditorFeatures\CSharpTest\CodeActions\EncapsulateField\EncapsulateFieldTests.cs : 534]
V3013: It is odd that the body of 'CreateHelpLinks' function is fully equivalent to the body of 'CreateCategoriesMap' function (19, line 29). [src\Compilers\CSharp\Portable\Errors\ErrorFacts.cs : 19]
V3013: It is odd that the body of 'CreatePrimaryPrompt' function is fully equivalent to the body of 'CreateSecondaryPrompt' function (3333, line 3338). [src\InteractiveWindow\Editor\InteractiveWindow.UIThreadOnly.cs : 3333]
V3013: It is odd that the body of 'Creation' function is fully equivalent to the body of 'InvalidLocation_TopLevel' function (18, line 27). [src\EditorFeatures\CSharpTest\AutomaticCompletion\AutomaticLessAndGreaterThanCompletionTests.cs : 18]
V3013: It is odd that the body of 'CrefSymbolInfo_None' function is fully equivalent to the body of 'CrefSymbolInfo_OverloadResolution' function. [src\Compilers\CSharp\Test\Symbol\DocumentationComments\CrefTests.cs : 3110]
V3013: It is odd that the body of 'CS0019ERR_BadBinaryOps11' function is fully equivalent to the body of 'CS0019ERR_BadBinaryOps12' function. [src\Compilers\CSharp\Test\Semantic\Semantics\SemanticErrorTests.cs : 412]
V3013: It is odd that the body of 'CS0537ERR_ObjectCantHaveBases_OtherType' function is fully equivalent to the body of 'CS0537ERR_ObjectCantHaveBases_WithMsCorlib' function. [src\Compilers\CSharp\Test\Symbol\Symbols\SymbolErrorTests.cs : 9080]
V3013: It is odd that the body of 'DecodeForwardRecord' function is fully equivalent to the body of 'DecodeForwardToModuleRecord' function (148, line 162). [src\Test\PdbUtilities\Shared\CustomDebugInfoReader.cs : 148]
V3013: It is odd that the body of 'DynamicDelegateInvocation3' function is fully equivalent to the body of 'DynamicDelegateInvocation4' function. [src\Compilers\CSharp\Test\Semantic\Semantics\DynamicTests.cs : 2888]
V3013: It is odd that the body of 'EmitAssemblyWithDifferentName1' function is fully equivalent to the body of 'EmitAssemblyWithDifferentName3' function. [src\Compilers\CSharp\Test\Emit\Emit\CompilationEmitTests.cs : 1637]
V3013: It is odd that the body of 'EmitAssemblyWithDifferentName2' function is fully equivalent to the body of 'EmitAssemblyWithDifferentName4' function. [src\Compilers\CSharp\Test\Emit\Emit\CompilationEmitTests.cs : 1668]
V3013: It is odd that the body of 'EnumCanonicalNodes' function is fully equivalent to the body of 'EnumPresentationNodes' function (23, line 29). [src\VisualStudio\Core\Def\Implementation\Library\FindResults\NavInfo.cs : 23]
V3013: It is odd that the body of 'FieldInitializer_Update3' function is fully equivalent to the body of 'FieldInitializerUpdate_InstanceCtorUpdate3' function. [src\EditorFeatures\CSharpTest\EditAndContinue\RudeEditTopLevelTests.cs : 4384]
V3013: It is odd that the body of 'ForEach_Reorder_Leaf1' function is fully equivalent to the body of 'ForEach_Update_Leaf1' function (3331, line 3380). [src\EditorFeatures\CSharpTest\EditAndContinue\ActiveStatementTests.cs : 3331]
V3013: It is odd that the body of 'GetAddressField2' function is fully equivalent to the body of 'GetAddressField3' function (52, line 59). [src\Debugging\Microsoft.DiaSymReader.PortablePdb\SymVariable.cs : 52]
V3013: It is odd that the body of 'GetConstants' function is fully equivalent to the body of 'GetLocals' function (47, line 54). [src\Debugging\Microsoft.DiaSymReader.PortablePdb\RootScopeData.cs : 47]
V3013: It is odd that the body of 'GetDefaultValue' function is fully equivalent to the body of 'GetCurrentValue' function (35, line 42). [src\VisualStudio\Core\Def\Implementation\Snippets\SnippetFunctions\AbstractSnippetFunction.cs : 35]
V3013: It is odd that the body of 'GetFirstStatementOrInitializerSelectedAtCallSite' function is fully equivalent to the body of 'GetLastStatementOrInitializerSelectedAtCallSite' function. [src\Features\CSharp\Portable\ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.SingleStatementCodeGenerator.cs : 66]
V3013: It is odd that the body of 'GetGlobalVariables' function is fully equivalent to the body of 'GetVariables' function (35, line 125). [src\ExpressionEvaluator\Core\Test\ExpressionCompiler\NotImplementedSymUnmanaged.cs : 35]
V3013: It is odd that the body of 'GetMethodsFromDocumentPosition' function is fully equivalent to the body of 'GetMethodsInDocument' function. [src\ExpressionEvaluator\Core\Test\ExpressionCompiler\NotImplementedSymUnmanaged.cs : 65]
V3013: It is odd that the body of 'GetObservedCompilationAsync' function is fully equivalent to the body of 'GetObservedCompilation' function. [src\Workspaces\CoreTest\SolutionTests\SolutionTests.cs : 1126]
V3013: It is odd that the body of 'GetObservedSyntaxTreeRoot' function is fully equivalent to the body of 'GetObservedSyntaxTreeRootAsync' function. [src\Workspaces\CoreTest\SolutionTests\SolutionTests.cs : 990]
V3013: It is odd that the body of 'GetObservedText' function is fully equivalent to the body of 'GetObservedTextAsync' function (929, line 959). [src\Workspaces\CoreTest\SolutionTests\SolutionTests.cs : 929]
V3013: It is odd that the body of 'GetPairExtent' function is fully equivalent to the body of 'GetWordExtent' function (106, line 111). [src\VisualStudio\Core\Def\Implementation\LanguageService\AbstractLanguageService`2.IVsLanguageTextOps.cs : 106]
V3013: It is odd that the body of 'GetResolvedType' function is fully equivalent to the body of 'AsTypeDefinition' function (37, line 181). [src\Compilers\CSharp\Portable\Emitter\Model\NamedTypeSymbolAdapter.cs : 37]
V3013: It is odd that the body of 'GetSemanticInfoForThisConstructorInitializer' function is fully equivalent to the body of 'ThisConstructorInitializer2' function. [src\Compilers\CSharp\Test\Symbol\Compilation\SemanticModelGetSemanticInfoTests.cs : 6067]
V3013: It is odd that the body of 'GetStartOffset' function is fully equivalent to the body of 'GetEndOffset' function (66, line 73). [src\Debugging\Microsoft.DiaSymReader.PortablePdb\SymVariable.cs : 66]
V3013: It is odd that the body of 'GetStartPoint_BodyWithDelimiter' function is fully equivalent to the body of 'GetEndPoint_BodyWithDelimiter' function. [src\VisualStudio\CSharp\Test\CodeModel\FileCodeClassTests.cs : 136]
V3013: It is odd that the body of 'GetStartPoint_HeaderWithAttributes' function is fully equivalent to the body of 'GetEndPoint_HeaderWithAttributes' function. [src\VisualStudio\CSharp\Test\CodeModel\FileCodeClassTests.cs : 156]
V3013: It is odd that the body of 'GetStartPoint_Name' function is fully equivalent to the body of 'GetEndPoint_Name' function (164, line 261). [src\VisualStudio\CSharp\Test\CodeModel\FileCodeClassTests.cs : 164]
V3013: It is odd that the body of 'GetSymAttribute' function is fully equivalent to the body of 'GetSymAttributePreRemap' function (89, line 107). [src\ExpressionEvaluator\Core\Test\ExpressionCompiler\NotImplementedSymUnmanaged.cs : 89]
V3013: It is odd that the body of 'GetSymAttributeByVersion' function is fully equivalent to the body of 'GetSymAttributeByVersionPreRemap' function. [src\ExpressionEvaluator\Core\Test\ExpressionCompiler\NotImplementedSymUnmanaged.cs : 95]
V3013: It is odd that the body of 'GetTypeDefExtendsOrThrow' function is fully equivalent to the body of 'GetBaseTypeOfTypeOrThrow' function. [src\Compilers\Core\Portable\MetadataReader\PEModule.cs : 492]
V3013: It is odd that the body of 'HelloWorldCS' function is fully equivalent to the body of 'ExtraMSCorLibCS' function (374, line 433). [src\Compilers\Server\VBCSCompilerTests\CompilerServerTests.cs : 374]
V3013: It is odd that the body of 'HelloWorldVB' function is fully equivalent to the body of 'ExtraMSCorLibVB' function (448, line 463). [src\Compilers\Server\VBCSCompilerTests\CompilerServerTests.cs : 448]
V3013: It is odd that the body of 'ImplicitImplementIDispose' function is fully equivalent to the body of 'ExplicitImplementIDispose' function. [src\Compilers\CSharp\Test\Emit\CodeGen\CodeGenUsingStatementTests.cs : 1271]
V3013: It is odd that the body of 'ImplicitImplementIDispose_Struct' function is fully equivalent to the body of 'ExplicitImplementIDispose_Struct' function. [src\Compilers\CSharp\Test\Emit\CodeGen\CodeGenUsingStatementTests.cs : 1315]
V3013: It is odd that the body of 'InForEach1' function is fully equivalent to the body of 'InForEach2' function (146, line 153). [src\EditorFeatures\CSharpTest2\Recommendations\InKeywordRecommenderTests.cs : 146]
V3013: It is odd that the body of 'InitializeAsync' function is fully equivalent to the body of 'ResetAsync' function (38, line 43). [src\InteractiveWindow\EditorTest\TestInteractiveEngine.cs : 38]
V3013: It is odd that the body of 'InvalidLocation_String' function is fully equivalent to the body of 'InvalidLocation_InterpolatedString2' function. [src\EditorFeatures\CSharpTest\AutomaticCompletion\AutomaticBraceCompletionTests.cs : 29]
V3013: It is odd that the body of 'IsBinaryExpression' function is fully equivalent to the body of 'IsBinaryExpressionOperatorToken' function. [src\Compilers\CSharp\Portable\Syntax\SyntaxKindFacts.cs : 548]
V3013: It is odd that the body of 'IsEndOfCatchClause' function is fully equivalent to the body of 'IsEndOfFilterClause' function (7257, line 7266). [src\Compilers\CSharp\Portable\Parser\LanguageParser.cs : 7257]
V3013: It is odd that the body of 'IsEndOfFixedStatement' function is fully equivalent to the body of 'IsEndOfForStatementArgument' function. [src\Compilers\CSharp\Portable\Parser\LanguageParser.cs : 7067]
V3013: It is odd that the body of 'IsEndOfNameInExplicitInterface' function is fully equivalent to the body of 'IsDotOrColonColon' function. [src\Compilers\CSharp\Portable\Parser\LanguageParser.cs : 2916]
V3013: It is odd that the body of 'IsEndOfParameterList' function is fully equivalent to the body of 'IsEndOfArgumentList' function (3978, line 8836). [src\Compilers\CSharp\Portable\Parser\LanguageParser.cs : 3978]
V3013: It is odd that the body of 'IsEndOfTryBlock' function is fully equivalent to the body of 'IsEndOfCatchBlock' function (7186, line 7274). [src\Compilers\CSharp\Portable\Parser\LanguageParser.cs : 7186]
V3013: It is odd that the body of 'IsGobalAttributesTerminator' function is fully equivalent to the body of 'IsNamespaceMemberStartOrStop' function. [src\Compilers\CSharp\Portable\Parser\LanguageParser.cs : 833]
V3013: It is odd that the body of 'IsPossibleAttribute' function is fully equivalent to the body of 'IsPossibleName' function (1094, line 5923). [src\Compilers\CSharp\Portable\Parser\LanguageParser.cs : 1094]
V3013: It is odd that the body of 'IsPossibleAttributeDeclaration' function is fully equivalent to the body of 'IsDictionaryInitializer' function. [src\Compilers\CSharp\Portable\Parser\LanguageParser.cs : 984]
V3013: It is odd that the body of 'IsPostfixUnaryExpression' function is fully equivalent to the body of 'IsPostfixUnaryExpressionToken' function. [src\Compilers\CSharp\Portable\Syntax\SyntaxKindFacts.cs : 393]
V3013: It is odd that the body of 'IsPrefixUnaryExpression' function is fully equivalent to the body of 'IsPrefixUnaryExpressionOperatorToken' function. [src\Compilers\CSharp\Portable\Syntax\SyntaxKindFacts.cs : 358]
V3013: It is odd that the body of 'LegacyCollectionTest18' function is fully equivalent to the body of 'LegacyCollectionTest19' function (6952, line 7079). [src\Compilers\CSharp\Test\WinRT\CodeGen\WinRTCollectionTests.cs : 6952]
V3013: It is odd that the body of 'LocationOfGotoOutofClosure' function is fully equivalent to the body of 'LocationOfGotoInClosure' function. [src\Compilers\CSharp\Test\Emit\CodeGen\GotoTest.cs : 120]
V3013: It is odd that the body of 'MainInScript2' function is fully equivalent to the body of 'MainInScript1' function (50, line 73). [src\Compilers\CSharp\Test\Semantic\Semantics\ScriptSemanticsTests.cs : 50]
V3013: It is odd that the body of 'MakeMemberAccessChange' function is fully equivalent to the body of 'MakeBinOpChange' function (163, line 170). [src\Compilers\CSharp\Test\Syntax\IncrementalParsing\BinaryExpression.cs : 163]
V3013: It is odd that the body of 'NestedDisabledCodePreProcessorDirectivesShouldCollapseEntireDisabledRegion4' function is fully equivalent to the body of 'PreprocessorDirectivesInTrailingTrivia' function. [src\EditorFeatures\CSharpTest\Outlining\DisabledTextOutlinerTests.cs : 169]
V3013: It is odd that the body of 'NotInStringInDirective' function is fully equivalent to the body of 'NotInUnterminatedStringInDirective' function. [src\EditorFeatures\CSharpTest\Completion\CompletionProviders\KeywordCompletionProviderTests.cs : 115]
V3013: It is odd that the body of 'NotNullAllowStructs' function is fully equivalent to the body of 'NotNull' function (1128, line 1139). [src\Workspaces\Core\Portable\Utilities\CompilerUtilities\ImmutableHashMap.cs : 1128]
V3013: It is odd that the body of 'NumericLiteral' function is fully equivalent to the body of 'Number' function (82, line 118). [src\EditorFeatures\Test\Classification\ClassificationBuilder.cs : 82]
V3013: It is odd that the body of 'ObjectCreateOutsideUsing' function is fully equivalent to the body of 'NoVarNameInsideUsing' function (1033, line 1085). [src\Compilers\CSharp\Test\Emit\CodeGen\CodeGenUsingStatementTests.cs : 1033]
V3013: It is odd that the body of 'OnBeforeOpenSolution' function is fully equivalent to the body of 'OnBeforeBackgroundSolutionLoadBegins' function. [src\VisualStudio\Core\Def\Implementation\ProjectSystem\VisualStudioProjectTracker_IVsSolutionLoadEvents.cs : 10]
V3013: It is odd that the body of 'OnCmdUIContextChanged' function is fully equivalent to the body of 'OnElementValueChanged' function (59, line 64). [src\VisualStudio\Core\SolutionExplorerShim\AnalyzerItemTracker.cs : 59]
V3013: It is odd that the body of 'OnDocumentActiveContextChanged' function is fully equivalent to the body of 'OnDocumentOpened' function (385, line 393). [src\EditorFeatures\Core\Implementation\Classification\SyntacticClassificationTaggerProvider.TagComputer.cs : 385]
V3013: It is odd that the body of 'OnMouseDown' function is fully equivalent to the body of 'OnMouseUp' function (308, line 314). [src\EditorFeatures\Core\Implementation\InlineRename\Dashboard\Dashboard.xaml.cs : 308]
V3013: It is odd that the body of 'OnQueryAddFiles' function is fully equivalent to the body of 'OnQueryAddFilesEx' function (115, line 156). [src\VisualStudio\Core\Def\Implementation\ProjectSystem\RuleSets\RuleSetEventHandler.cs : 115]
V3013: It is odd that the body of 'OnResourceFileAdded' function is fully equivalent to the body of 'OnResourceFileRemoved' function (96, line 101). [src\VisualStudio\CSharp\Impl\ProjectSystemShim\CSharpProjectShim.ICSharpProjectSite.cs : 96]
V3013: It is odd that the body of 'OnSelectionChanged' function is fully equivalent to the body of 'OnCmdUIContextChanged' function (115, line 132). [src\VisualStudio\Core\Def\Implementation\Workspace\VisualStudioDocumentTrackingService.cs : 115]
V3013: It is odd that the body of 'OutputFileName4' function is fully equivalent to the body of 'OutputFileName_Switch' function (4489, line 4651). [src\Compilers\CSharp\Test\CommandLine\CommandLineTests.cs : 4489]
V3013: It is odd that the body of 'ParameterRename_Method1' function is fully equivalent to the body of 'ParameterUpdate' function (7018, line 7130). [src\EditorFeatures\CSharpTest\EditAndContinue\RudeEditTopLevelTests.cs : 7018]
V3013: It is odd that the body of 'Preprocessor5' function is fully equivalent to the body of 'Preprocessor6' function (1180, line 1209). [src\Workspaces\CSharpTest\Formatting\FormattingTriviaTests.cs : 1180]
V3013: It is odd that the body of 'PressingEnter_InsertSlashes3' function is fully equivalent to the body of 'PressingEnter_InsertSlashes5' function. [src\EditorFeatures\CSharpTest\DocumentationComments\DocumentationCommentTests.cs : 872]
V3013: It is odd that the body of 'Queries_AccessingCapturedTransparentIdentifier3' function is fully equivalent to the body of 'Queries_NotAccessingCapturedTransparentIdentifier2' function. [src\EditorFeatures\CSharpTest\EditAndContinue\RudeEditStatementTests.cs : 6137]
V3013: It is odd that the body of 'Refresh' function is fully equivalent to the body of 'WaitForReadyState' function (67, line 90). [src\VisualStudio\Core\Def\Implementation\Venus\ContainedLanguage.IVsContainedLanguage.cs : 67]
V3013: It is odd that the body of 'ReorderMethodParameters_InvokeOnReference_BeginningOfIdentifier' function is fully equivalent to the body of 'ReorderMethodParameters_InvokeOnReference_ArgumentList' function. [src\EditorFeatures\CSharpTest\ChangeSignature\ReorderParametersTests.InvocationLocation.cs : 194]
V3013: It is odd that the body of 'SelectRHSOfPreIncrementOperator' function is fully equivalent to the body of 'SelectPreIncrementOperator' function. [src\EditorFeatures\CSharpTest\ExtractMethod\SelectionValidatorTests.cs : 925]
V3013: It is odd that the body of 'SetSite' function is fully equivalent to the body of 'Close' function (62, line 67). [src\VisualStudio\Core\Def\Implementation\AbstractCodePageEditorFactory.cs : 62]
V3013: It is odd that the body of 'ShouldUseBaseIndentation' function is fully equivalent to the body of 'ShouldNotFormatOrCommitOnPaste' function. [src\VisualStudio\Core\Def\Implementation\Workspace\VisualStudioFormattingRuleFactoryServiceFactory.cs : 36]
V3013: It is odd that the body of 'SimpleIterator1' function is fully equivalent to the body of 'SimpleIterator2' function (16, line 57). [src\Compilers\CSharp\Test\Emit\PDB\PDBIteratorTests.cs : 16]
V3013: It is odd that the body of 'SpillOperator_Compound1' function is fully equivalent to the body of 'SpillOperator_Compound2' function. [src\Compilers\CSharp\Test\Emit\CodeGen\CodeGenAsyncSpillTests.cs : 2401]
V3013: It is odd that the body of 'StaticMembersInPropertyInitializer' function is fully equivalent to the body of 'StaticMembersInFieldLikeEventInitializer' function. [src\EditorFeatures\CSharpTest\Completion\CompletionProviders\SymbolCompletionProviderTests.cs : 8309]
V3013: It is odd that the body of 'SupportsReadOnlyProperties' function is fully equivalent to the body of 'SupportsPropertyInitializer' function. [src\EditorFeatures\CSharp\UseAutoProperty\UseAutoPropertyAnalyzer.cs : 20]
V3013: It is odd that the body of 'TestAtLastPositionInFile' function is fully equivalent to the body of 'TestCurlyBrace4' function (38, line 74). [src\EditorFeatures\CSharpTest\BraceMatching\CSharpBraceMatcherTests.cs : 38]
V3013: It is odd that the body of 'TestErrorsImplementingGenericNestedInterfaces_Explicit_HideTypeParameter' function is fully equivalent to the body of 'TestErrorsImplementingGenericNestedInterfaces_Implicit_HideTypeParameter' function. [src\Compilers\CSharp\Test\Semantic\Semantics\InheritanceBindingTests.cs : 6550]
V3013: It is odd that the body of 'TestErrorWithSingleLineComment' function is fully equivalent to the body of 'TestErrorWithMultiLineComment' function. [src\Compilers\CSharp\Test\Syntax\LexicalAndXml\PreprocessorTests.cs : 2893]
V3013: It is odd that the body of 'TestForEachImplicitlyGetEnumeratorStruct' function is fully equivalent to the body of 'TestForEachImplicitlyGetEnumeratorGenericStruct' function. [src\Compilers\CSharp\Test\Emit\CodeGen\CodeGenForEachTests.cs : 924]
V3013: It is odd that the body of 'TestGarbageInsideNamespace' function is fully equivalent to the body of 'TestNamespaceWithGarbage' function. [src\Compilers\CSharp\Test\Syntax\Parsing\ParsingErrorRecoveryTests.cs : 344]
V3013: It is odd that the body of 'TestRunScript' function is fully equivalent to the body of 'TestRunScriptWithSpecifiedReturnType' function (64, line 87). [src\Scripting\CSharpTest\ScriptTests.cs : 64]
V3013: It is odd that the body of 'TestWorkspaceChangedEvent' function is fully equivalent to the body of 'TestWorkspaceChangedWeakEvent' function. [src\Workspaces\CoreTest\WorkspaceTests\MSBuildWorkspaceTests.cs : 2048]
V3013: It is odd that the body of 'TryMatchSingleWordPattern_PreferCaseSensitiveExact' function is fully equivalent to the body of 'TryMatchSingleWordPattern_PreferCaseInsensitiveBasicEquals2' function. [src\EditorFeatures\Test\Utilities\PatternMatcherTests.cs : 170]
V3013: It is odd that the body of 'TryMatchSingleWordPattern_PreferCaseSensitiveLowercasePattern2' function is fully equivalent to the body of 'TryMatchSingleWordPattern_PreferCaseInsensitiveCamelCase2' function. [src\EditorFeatures\Test\Utilities\PatternMatcherTests.cs : 276]
V3013: It is odd that the body of 'TypeAliasNameIsSameAsProp' function is fully equivalent to the body of 'SimpleNameThroughUsingAlias' function. [src\Compilers\CSharp\Test\Semantic\Semantics\MethodBodyModelTests.cs : 701]
V3013: It is odd that the body of 'UnsafeAttributes_NoErrors' function is fully equivalent to the body of 'UnsafeAttributes_MissingUnverifiableCodeAttribute' function. [src\Compilers\CSharp\Test\Semantic\Semantics\UseSiteErrorTests.cs : 1299]
V3013: It is odd that the body of 'UpdateSolution_Done' function is fully equivalent to the body of 'UpdateSolution_Cancel' function (642, line 655). [src\VisualStudio\Core\SolutionExplorerShim\AnalyzersCommandHandler.cs : 642]
V3013: It is odd that the body of 'UpdateSolution_StartUpdate' function is fully equivalent to the body of 'OnActiveProjectCfgChange' function. [src\VisualStudio\Core\SolutionExplorerShim\AnalyzersCommandHandler.cs : 650]
V3013: It is odd that the body of 'ValueEqualsExpression' function is fully equivalent to the body of 'ReferenceEqualsExpression' function. [src\Workspaces\CSharp\Portable\CodeGeneration\CSharpSyntaxGenerator.cs : 3622]
V3013: It is odd that the body of 'ValueNotEqualsExpression' function is fully equivalent to the body of 'ReferenceNotEqualsExpression' function. [src\Workspaces\CSharp\Portable\CodeGeneration\CSharpSyntaxGenerator.cs : 3632]
V3013: It is odd that the body of 'VarargsAsyncGeneric' function is fully equivalent to the body of 'VarargsAsyncInGenericClass' function (624, line 644). [src\Compilers\CSharp\Test\Semantic\Semantics\BindingAsyncTests.cs : 624]
V3013: It is odd that the body of 'VisualizeUserString' function is fully equivalent to the body of 'VisualizeSymbol' function (9, line 14). [src\Test\PdbUtilities\Metadata\ILVisualizerAsTokens.cs : 9]
V3013: It is odd that the body of 'Whitespace' function is fully equivalent to the body of 'ElasticWhitespace' function (118, line 129). [src\Compilers\CSharp\Portable\Syntax\SyntaxFactory.cs : 118]
~~V3017: A pattern was detected: A || (A && ...). The expression is excessive or contains a logical error. [src\Features\Core\Portable\ExtractMethod\AbstractSyntaxTriviaService.Result.cs : 117]~~
~~V3017: A pattern was detected: A || (A && ...). The expression is excessive or contains a logical error. [src\Features\Core\Portable\ExtractMethod\AbstractSyntaxTriviaService.Result.cs : 118]~~
~~V3017: A pattern was detected: A || (A && ...). The expression is excessive or contains a logical error. [src\Features\Core\Portable\ExtractMethod\AbstractSyntaxTriviaService.Result.cs : 123]~~
~~V3017: A pattern was detected: A || (A && ...). The expression is excessive or contains a logical error. [src\Features\Core\Portable\ExtractMethod\AbstractSyntaxTriviaService.Result.cs : 124]~~
~~V3019: Possibly an incorrect variable is compared to null after type conversion using 'as' keyword. Check variables 'obj', 'd'. [src\Test\Utilities\Shared\Diagnostics\DiagnosticDescription.cs : 201]~~
~~V3019: Possibly an incorrect variable is compared to null after type conversion using 'as' keyword. Check variables 'other', 'otherResourceString'. [src\Compilers\Core\Portable\Diagnostic\LocalizableResourceString.cs : 121]~~
~~V3019: Possibly an incorrect variable is compared to null after type conversion using 'as' keyword. Check variables 'parentStartTag', 'parentElement'. ~~[src\EditorFeatures\CSharp\DocumentationComments\XmlTagCompletionCommandHandler.cs : 123]
~~V3021: There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless ~~[src\Compilers\CSharp\Portable\Binder\InMethodBinder.cs : 264]
~~V3021: There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless ~~[src\Compilers\CSharp\Portable\Binder\WithLambdaParametersBinder.cs : 131]
~~V3021: There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless [src\Compilers\CSharp\Portable\Syntax\SyntaxFactory.cs : 878]~~
~~V3021: There are two 'if' statements with identical conditional expressions. The first 'if' statement contains method return. This means that the second 'if' statement is senseless [src\EditorFeatures\CSharp\DocumentationComments\XmlTagCompletionCommandHandler.cs : 117]~~
V3022: Expression 'lmrType.IsPointer || lmrType.IsEnum || typeCode != TypeCode.DateTime || typeCode != TypeCode.Object' is always true. [src\ExpressionEvaluator\Core\Test\ResultProvider\Debugger\Engine\DkmClrValue.cs : 136]
V3022: Expression 'v >= 0' is always true. Unsigned type value is always >= 0. [src\Workspaces\Core\Portable\Shared\Utilities\EnumValueUtilities.cs : 113]
V3022: Expression 'v >= 0' is always true. Unsigned type value is always >= 0. [src\Workspaces\Core\Portable\Shared\Utilities\EnumValueUtilities.cs : 115]
V3022: Expression 'v >= 0' is always true. Unsigned type value is always >= 0. [src\Workspaces\Core\Portable\Shared\Utilities\EnumValueUtilities.cs : 117]
V3022: Expression 'v >= 0' is always true. Unsigned type value is always >= 0. [src\Workspaces\Core\Portable\Shared\Utilities\EnumValueUtilities.cs : 119]
V3023: Consider inspecting this expression. The expression is excessive or contains a misprint. [src\Workspaces\Core\Desktop\Log\RoslynEventSource.cs : 79]
V3024: An odd precise comparison. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\CSharp\Portable\Binder\Binder_Operators.cs : 1669]
V3024: An odd precise comparison. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\CSharp\Portable\Binder\Binder_Operators.cs : 1671]
V3024: An odd precise comparison. Consider using a comparison with defined precision: Math.Abs(A - B) > Epsilon. [src\Compilers\CSharp\Portable\Binder\Binder_Operators.cs : 1687]
V3024: An odd precise comparison. Consider using a comparison with defined precision: Math.Abs(A - B) > Epsilon. [src\Compilers\CSharp\Portable\Binder\Binder_Operators.cs : 1689]
V3024: An odd precise comparison: distance == ExactMatchDist. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Features\CSharp\Portable\EditAndContinue\SyntaxComparer.cs : 74]
V3024: An odd precise comparison: distance == ExactMatchDist. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Features\CSharp\Portable\EditAndContinue\SyntaxComparer.cs : 88]
V3024: An odd precise comparison: distance == ExactMatchDist. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Features\CSharp\Portable\EditAndContinue\SyntaxComparer.cs : 96]
V3024: An odd precise comparison: distance == ExactMatchDistance. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Workspaces\Core\Portable\Differencing\Match.cs : 247]
V3024: An odd precise comparison: f == 0. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\Core\CodeAnalysisTest\RealParserTests.cs : 452]
V3024: An odd precise comparison: f == 0. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\Core\CodeAnalysisTest\RealParserTests.cs : 471]
V3024: An odd precise comparison: other.DoubleValue == 0. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\Core\Portable\ConstantValueSpecialized.cs : 401]
V3024: An odd precise comparison: other.SingleValue == 0. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\Core\Portable\ConstantValueSpecialized.cs : 424]
V3024: An odd precise comparison: value == 0. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Test\PdbUtilities\Metadata\ILVisualizer.cs : 421]
V3024: An odd precise comparison: value == 0. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Test\PdbUtilities\Metadata\ILVisualizer.cs : 435]
V3024: An odd precise comparison: value == 1. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\Core\Portable\ConstantValue.cs : 239]
V3024: An odd precise comparison: value == 1. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\Core\Portable\ConstantValue.cs : 253]
V3024: An odd precise comparison: value == 1. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\Core\Portable\ConstantValue.cs : 267]
V3024: An odd precise comparison: value.DoubleValue == 0. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Compilers\CSharp\Portable\Binder\Semantics\Conversions\ConversionsBase.cs : 734]
V3024: An odd precise comparison: weightedDistance == ExactMatchDist. Consider using a comparison with defined precision: Math.Abs(A - B) < Epsilon. [src\Features\CSharp\Portable\EditAndContinue\SyntaxComparer.cs : 52]
~~V3025: Incorrect format. A different number of format items is expected while calling 'Format' function. Expected: 2. Present: 1. [src\Compilers\Extension\CompilerPackage.cs : 105]~~
~~V3025: Incorrect format. A different number of format items is expected while calling 'Format' function. Expected: 2. Present: 3. [src\Compilers\Core\CommandLine\CompilerServerLogger.cs : 49]~~
~~V3025: Incorrect format. A different number of format items is expected while calling 'Format' function. Expected: 3. Present: 4. [src\Compilers\CSharp\Test\Semantic\Semantics\SemanticErrorTests.cs : 10479]~~
~~V3025: Incorrect format. A different number of format items is expected while calling 'WriteLine' function. Expected: 3. Present: 1. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\LoadingAttributes.cs : 551]~~
~~V3025: Incorrect format. A different number of format items is expected while calling 'WriteLine' function. Expected: 4. Present: 2. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\LoadingAttributes.cs : 558]~~
V3026: The constant 3.1415926 is being utilized. The resulting value could be inaccurate. Consider using Math.PI. [src\Compilers\CSharp\Test\Emit\Attributes\AttributeTests.cs : 441]
V3026: The constant 3.1415926 is being utilized. The resulting value could be inaccurate. Consider using Math.PI. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\LoadingAttributes.cs : 143]
V3026: The constant 3.1415926 is being utilized. The resulting value could be inaccurate. Consider using Math.PI. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\LoadingAttributes.cs : 282]
V3026: The constant 3.1415926 is being utilized. The resulting value could be inaccurate. Consider using Math.PI. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\LoadingAttributes.cs : 497]
V3026: The constant 3.1415926 is being utilized. The resulting value could be inaccurate. Consider using Math.PI. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\LoadingAttributes.cs : 70]
V3026: The constant 3.1415926 is being utilized. The resulting value could be inaccurate. Consider using Math.PI. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\LoadingAttributes.cs : 990]
~~V3027: The variable 'newType' was utilized in the logical expression before it was verified against null in the same logical expression. [src\Workspaces\Core\Portable\Utilities\AbstractSpeculationAnalyzer.cs : 383]~~
V3029: The conditional expressions of the 'if' operators situated alongside each other are identical. Check lines: 223, 228. [src\EditorFeatures\Test\EditAndContinue\EditAndContinueTestHelpers.cs : 223]
V3031: An excessive check can be simplified. The '||' operator is surrounded by opposite expressions 'node.IsList' and 'i == 0 && !node.IsList'. [src\Compilers\Core\Portable\Syntax\SyntaxTokenList.cs : 211]
V3031: An excessive check can be simplified. The '||' operator is surrounded by opposite expressions 'node.IsList' and 'i == 0 && !node.IsList'. [src\Compilers\Core\Portable\Syntax\SyntaxTriviaList.cs : 366]
V3031: An excessive check can be simplified. The '||' operator is surrounded by opposite expressions. [src\Compilers\Core\MSBuildTask\Shared\Vbc.cs : 317]
V3031: An excessive check can be simplified. The '||' operator is surrounded by opposite expressions. [src\Workspaces\Core\Portable\Utilities\SyntaxPath.cs : 103]
V3031: An excessive check can be simplified. The '||' operator is surrounded by opposite expressions. [src\Workspaces\Core\Portable\Utilities\SyntaxPath.cs : 117]
V3031: An excessive check can be simplified. The '||' operator is surrounded by opposite expressions. [src\Workspaces\Core\Portable\Utilities\SyntaxPath.cs : 74]

@pvs-studio
Copy link

Guys, some additional info.

The best way to review our plog file is to install PVS-Studio, open the plog file and start jumping into the code to review the code fragments that the warnings were issued for. If you change the code (the plog file is created by December 18), we advise to recheck the project.

In the PVS-Studio trial mode, there are only 50 jump-clicks to the code from the list of warnings. Please contact us - [email protected] when you decide to fix the issues. We can give you a license key for two weeks. So, you can use the full capacity of the tool without any limitations.

@phrohdoh
Copy link
Contributor

@pvs-studio Or you could use any text editor to jump to the noted source line.

jaredpar added a commit to jaredpar/roslyn that referenced this issue Jan 5, 2016
Corrects a couple of items noted in dotnet#7677
@davkean
Copy link
Member

davkean commented Jan 5, 2016

@jaredpar Can you cross out the ones you looked at and fixed or dismissed as noise?

@jaredpar
Copy link
Member

jaredpar commented Jan 5, 2016

@davkean that's the plan once this is merged in. I've been keeping track of everything I updated.

@jaredpar
Copy link
Member

jaredpar commented Jan 6, 2016

@davkean I updated @jmarolf comment to X out all of the items I corrected / ruled out.

@davkean
Copy link
Member

davkean commented Jan 15, 2016

@AndreyKarpov thanks for the analysis, but it appears there's a lot of false positions in this analysis, some examples, picking some random ones that I looked at:

V3008: The 'assemblies' variable is assigned values twice successively. Perhaps this is a mistake. Check lines: 43, 35. [src\Compilers\CSharp\Test\Symbol\Symbols\Metadata\PE\BaseTypeResolution.cs : 43]
V3031: An excessive check can be simplified. The '||' operator is surrounded by opposite expressions 'node.IsList' and 'i == 0 && !node.IsList'. [src\Compilers\Core\Portable\Syntax\SyntaxTokenList.cs : 211]
V3013: It is odd that the body of 'SupportsReadOnlyProperties' function is fully equivalent to the body of 'SupportsPropertyInitializer' function. [src\EditorFeatures\CSharp\UseAutoProperty\UseAutoPropertyAnalyzer.cs : 20]

@AndreyKarpov
Copy link
Author

@davkean Yes, false positives do happen, although it shouldn't be surprising. It would be strange to expect that such a qualitative project as Roslyn will have a big number of real bugs. Also, I always emphasize that the real value of the analyzer is in its regular use, not in occasional checks.

In any case we are still working on the quality improvement of our tool. I hope that further versions will generate less false positives. The issues with false positives can be tackled in many different ways. For example if you want to start using the analyzer regularly, the most comfortable method will be "mark up base". More details: http://www.viva64.com/en/b/0364/

@jasonmalinowski
Copy link
Member

Moving these to the areas impacted by the list of files to see if there's any work to still do. Infrastructure isn't a vacuum cleaning service for other team's code. 😄

@Pilchie Pilchie added this to the 15.3 milestone Mar 25, 2017
@jaredpar jaredpar modified the milestones: 16.0, 15.3 Mar 27, 2017
@jaredpar jaredpar modified the milestones: 16.0, Unknown Sep 7, 2018
@CyrusNajmabadi
Copy link
Member

Unlikely to do anything here.

@CyrusNajmabadi CyrusNajmabadi closed this as not planned Won't fix, can't repro, duplicate, stale Nov 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants