From 1ae5f284caf7ab303f4f3b202ca1a82629fb6892 Mon Sep 17 00:00:00 2001 From: Pavel Mikula <57188685+pavel-mikula-sonarsource@users.noreply.github.com> Date: Thu, 13 Apr 2023 17:23:15 +0200 Subject: [PATCH] Fix S3900 FP: Recognize VB extensions (#7047) --- ...31-1F7B-4637-9B3A-806988DE50CF}-S3900.json | 888 ++---------------- ...thodArgumentsShouldBeCheckedForNullBase.cs | 3 +- ...icMethodArgumentsShouldBeCheckedForNull.cs | 1 - ...icMethodArgumentsShouldBeCheckedForNull.vb | 21 +- 4 files changed, 74 insertions(+), 839 deletions(-) diff --git a/analyzers/its/expected/Ember-MM/scraper.EmberCore.XML-{E567C031-1F7B-4637-9B3A-806988DE50CF}-S3900.json b/analyzers/its/expected/Ember-MM/scraper.EmberCore.XML-{E567C031-1F7B-4637-9B3A-806988DE50CF}-S3900.json index caa570c832c..d1cf7be0bc5 100644 --- a/analyzers/its/expected/Ember-MM/scraper.EmberCore.XML-{E567C031-1F7B-4637-9B3A-806988DE50CF}-S3900.json +++ b/analyzers/its/expected/Ember-MM/scraper.EmberCore.XML-{E567C031-1F7B-4637-9B3A-806988DE50CF}-S3900.json @@ -396,686 +396,49 @@ "location": { "uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", "region": { -"startLine": 238, -"startColumn": 25, -"endLine": 238, -"endColumn": 32 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 239, -"startColumn": 26, -"endLine": 239, -"endColumn": 33 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 240, -"startColumn": 25, -"endLine": 240, -"endColumn": 32 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 241, -"startColumn": 24, -"endLine": 241, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 242, -"startColumn": 31, -"endLine": 242, -"endColumn": 38 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 243, -"startColumn": 24, -"endLine": 243, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 244, -"startColumn": 26, -"endLine": 244, -"endColumn": 33 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 246, -"startColumn": 17, -"endLine": 246, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 248, -"startColumn": 17, -"endLine": 248, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 249, -"startColumn": 17, -"endLine": 249, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 250, -"startColumn": 17, -"endLine": 250, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 251, -"startColumn": 17, -"endLine": 251, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 253, -"startColumn": 46, -"endLine": 253, -"endColumn": 53 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'xInfo' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 262, -"startColumn": 29, -"endLine": 262, -"endColumn": 34 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'xInfo' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 396, -"startColumn": 29, -"endLine": 396, -"endColumn": 34 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 400, -"startColumn": 29, -"endLine": 400, -"endColumn": 36 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 401, -"startColumn": 26, -"endLine": 401, -"endColumn": 33 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", -"region": { -"startLine": 402, -"startColumn": 29, -"endLine": 402, -"endColumn": 36 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'xInfo' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 251, -"startColumn": 29, -"endLine": 251, -"endColumn": 34 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 255, -"startColumn": 24, -"endLine": 255, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 256, -"startColumn": 17, -"endLine": 256, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 257, -"startColumn": 29, -"endLine": 257, -"endColumn": 36 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 258, -"startColumn": 24, -"endLine": 258, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 259, -"startColumn": 24, -"endLine": 259, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 260, -"startColumn": 26, -"endLine": 260, -"endColumn": 33 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 261, -"startColumn": 29, -"endLine": 261, -"endColumn": 36 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 262, -"startColumn": 31, -"endLine": 262, -"endColumn": 38 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 263, -"startColumn": 17, -"endLine": 263, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 264, -"startColumn": 17, -"endLine": 264, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 265, -"startColumn": 17, -"endLine": 265, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 266, -"startColumn": 17, -"endLine": 266, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 267, -"startColumn": 17, -"endLine": 267, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", -"region": { -"startLine": 269, -"startColumn": 51, -"endLine": 269, -"endColumn": 58 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\Fanart.vb", -"region": { -"startLine": 93, -"startColumn": 34, -"endLine": 93, -"endColumn": 41 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'other' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 351, -"startColumn": 29, -"endLine": 351, -"endColumn": 34 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'other' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 364, -"startColumn": 17, -"endLine": 364, -"endColumn": 22 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'xInfo' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 374, -"startColumn": 29, -"endLine": 374, -"endColumn": 34 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 378, -"startColumn": 28, -"endLine": 378, -"endColumn": 35 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 379, -"startColumn": 36, -"endLine": 379, -"endColumn": 43 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 380, -"startColumn": 25, -"endLine": 380, -"endColumn": 32 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 381, -"startColumn": 27, -"endLine": 381, -"endColumn": 34 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 382, -"startColumn": 27, -"endLine": 382, -"endColumn": 34 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 383, -"startColumn": 32, -"endLine": 383, -"endColumn": 39 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 384, -"startColumn": 30, -"endLine": 384, -"endColumn": 37 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 385, -"startColumn": 30, -"endLine": 385, -"endColumn": 37 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 386, -"startColumn": 29, -"endLine": 386, -"endColumn": 36 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 387, -"startColumn": 30, -"endLine": 387, -"endColumn": 37 +"startLine": 253, +"startColumn": 46, +"endLine": 253, +"endColumn": 53 } } }, { "id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", +"message": "Refactor this method to add validation of parameter 'xInfo' before using it.", "location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", +"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", "region": { -"startLine": 389, +"startLine": 262, "startColumn": 29, -"endLine": 389, -"endColumn": 36 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 390, -"startColumn": 27, -"endLine": 390, +"endLine": 262, "endColumn": 34 } } }, { "id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", -"region": { -"startLine": 391, -"startColumn": 43, -"endLine": 391, -"endColumn": 50 -} -} -}, -{ -"id": "S3900", "message": "Refactor this method to add validation of parameter 'xInfo' before using it.", "location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", +"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\AlbumTag.vb", "region": { -"startLine": 139, +"startLine": 396, "startColumn": 29, -"endLine": 139, +"endLine": 396, "endColumn": 34 } } }, { "id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", -"region": { -"startLine": 143, -"startColumn": 25, -"endLine": 143, -"endColumn": 32 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", +"message": "Refactor this method to add validation of parameter 'xInfo' before using it.", "location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", +"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", "region": { -"startLine": 144, -"startColumn": 26, -"endLine": 144, -"endColumn": 33 +"startLine": 251, +"startColumn": 29, +"endLine": 251, +"endColumn": 34 } } }, @@ -1083,12 +446,12 @@ "id": "S3900", "message": "Refactor this method to add validation of parameter 'element' before using it.", "location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", +"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\ArtistTag.vb", "region": { -"startLine": 145, -"startColumn": 24, -"endLine": 145, -"endColumn": 31 +"startLine": 269, +"startColumn": 51, +"endLine": 269, +"endColumn": 58 } } }, @@ -1096,51 +459,51 @@ "id": "S3900", "message": "Refactor this method to add validation of parameter 'element' before using it.", "location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", +"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\Fanart.vb", "region": { -"startLine": 146, -"startColumn": 25, -"endLine": 146, -"endColumn": 32 +"startLine": 93, +"startColumn": 34, +"endLine": 93, +"endColumn": 41 } } }, { "id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", +"message": "Refactor this method to add validation of parameter 'other' before using it.", "location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", +"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", "region": { -"startLine": 147, -"startColumn": 26, -"endLine": 147, -"endColumn": 33 +"startLine": 351, +"startColumn": 29, +"endLine": 351, +"endColumn": 34 } } }, { "id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", +"message": "Refactor this method to add validation of parameter 'other' before using it.", "location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", +"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", "region": { -"startLine": 148, +"startLine": 364, "startColumn": 17, -"endLine": 148, -"endColumn": 24 +"endLine": 364, +"endColumn": 22 } } }, { "id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", +"message": "Refactor this method to add validation of parameter 'xInfo' before using it.", "location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", +"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", "region": { -"startLine": 149, -"startColumn": 17, -"endLine": 149, -"endColumn": 24 +"startLine": 374, +"startColumn": 29, +"endLine": 374, +"endColumn": 34 } } }, @@ -1148,25 +511,25 @@ "id": "S3900", "message": "Refactor this method to add validation of parameter 'element' before using it.", "location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", +"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MovieTag.vb", "region": { -"startLine": 150, -"startColumn": 17, -"endLine": 150, -"endColumn": 24 +"startLine": 391, +"startColumn": 43, +"endLine": 391, +"endColumn": 50 } } }, { "id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", +"message": "Refactor this method to add validation of parameter 'xInfo' before using it.", "location": { "uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\MusicVideoTag.vb", "region": { -"startLine": 151, -"startColumn": 17, -"endLine": 151, -"endColumn": 24 +"startLine": 139, +"startColumn": 29, +"endLine": 139, +"endColumn": 34 } } }, @@ -1198,97 +561,6 @@ }, { "id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\PersonInfo.vb", -"region": { -"startLine": 241, -"startColumn": 24, -"endLine": 241, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\PersonInfo.vb", -"region": { -"startLine": 242, -"startColumn": 17, -"endLine": 242, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\PersonInfo.vb", -"region": { -"startLine": 243, -"startColumn": 24, -"endLine": 243, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\PersonInfo.vb", -"region": { -"startLine": 244, -"startColumn": 24, -"endLine": 244, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\PersonInfo.vb", -"region": { -"startLine": 245, -"startColumn": 24, -"endLine": 245, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\PersonInfo.vb", -"region": { -"startLine": 246, -"startColumn": 29, -"endLine": 246, -"endColumn": 36 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\PersonInfo.vb", -"region": { -"startLine": 247, -"startColumn": 17, -"endLine": 247, -"endColumn": 24 -} -} -}, -{ -"id": "S3900", "message": "Refactor this method to add validation of parameter 'other' before using it.", "location": { "uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\PersonInfo.vb", @@ -1345,45 +617,6 @@ "location": { "uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\TVEpisodeTag.vb", "region": { -"startLine": 186, -"startColumn": 25, -"endLine": 186, -"endColumn": 32 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\TVEpisodeTag.vb", -"region": { -"startLine": 187, -"startColumn": 24, -"endLine": 187, -"endColumn": 31 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\TVEpisodeTag.vb", -"region": { -"startLine": 188, -"startColumn": 25, -"endLine": 188, -"endColumn": 32 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\TVEpisodeTag.vb", -"region": { "startLine": 189, "startColumn": 34, "endLine": 189, @@ -1410,19 +643,6 @@ "location": { "uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\TVShow.vb", "region": { -"startLine": 246, -"startColumn": 26, -"endLine": 246, -"endColumn": 33 -} -} -}, -{ -"id": "S3900", -"message": "Refactor this method to add validation of parameter 'element' before using it.", -"location": { -"uri": "sources\Ember-MM\Addons\scraper.EmberCore.XML\XMLScraper\MediaTags\TVShow.vb", -"region": { "startLine": 247, "startColumn": 51, "endLine": 247, diff --git a/analyzers/src/SonarAnalyzer.Common/SymbolicExecution/Roslyn/RuleChecks/PublicMethodArgumentsShouldBeCheckedForNullBase.cs b/analyzers/src/SonarAnalyzer.Common/SymbolicExecution/Roslyn/RuleChecks/PublicMethodArgumentsShouldBeCheckedForNullBase.cs index 22a2babc7e6..ba1b663af1d 100644 --- a/analyzers/src/SonarAnalyzer.Common/SymbolicExecution/Roslyn/RuleChecks/PublicMethodArgumentsShouldBeCheckedForNullBase.cs +++ b/analyzers/src/SonarAnalyzer.Common/SymbolicExecution/Roslyn/RuleChecks/PublicMethodArgumentsShouldBeCheckedForNullBase.cs @@ -55,7 +55,8 @@ private static IOperation NullDereferenceCandidate(IOperation operation) { var candidate = operation.Kind switch { - OperationKindEx.Invocation => operation.ToInvocation().Instance, + // C# extensions have Instance=Null, while VB extensions have it set. + OperationKindEx.Invocation when operation.ToInvocation() is var invocation && !invocation.TargetMethod.IsExtensionMethod => invocation.Instance, OperationKindEx.FieldReference => operation.ToFieldReference().Instance, OperationKindEx.PropertyReference => operation.ToPropertyReference().Instance, OperationKindEx.EventReference => operation.ToEventReference().Instance, diff --git a/analyzers/src/SonarAnalyzer.VisualBasic/SymbolicExecution/Roslyn/PublicMethodArgumentsShouldBeCheckedForNull.cs b/analyzers/src/SonarAnalyzer.VisualBasic/SymbolicExecution/Roslyn/PublicMethodArgumentsShouldBeCheckedForNull.cs index b0aeeb8f2a1..8121d4a596c 100644 --- a/analyzers/src/SonarAnalyzer.VisualBasic/SymbolicExecution/Roslyn/PublicMethodArgumentsShouldBeCheckedForNull.cs +++ b/analyzers/src/SonarAnalyzer.VisualBasic/SymbolicExecution/Roslyn/PublicMethodArgumentsShouldBeCheckedForNull.cs @@ -80,7 +80,6 @@ public ArgumentDereferenceWalker(ISet argumentNames) => public override void Visit(SyntaxNode node) { - // FIXME: UTs if (!DereferencesMethodArguments && !node.IsAnyKind(SingleLineSubLambdaExpression, MultiLineSubLambdaExpression, SingleLineFunctionLambdaExpression, MultiLineFunctionLambdaExpression)) { base.Visit(node); diff --git a/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/SymbolicExecution/Roslyn/PublicMethodArgumentsShouldBeCheckedForNull.vb b/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/SymbolicExecution/Roslyn/PublicMethodArgumentsShouldBeCheckedForNull.vb index 040acd2b62f..86d0b55f2dd 100644 --- a/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/SymbolicExecution/Roslyn/PublicMethodArgumentsShouldBeCheckedForNull.vb +++ b/analyzers/tests/SonarAnalyzer.UnitTest/TestCases/SymbolicExecution/Roslyn/PublicMethodArgumentsShouldBeCheckedForNull.vb @@ -167,13 +167,13 @@ Public Class GuardedTests GuardShared(s4) s4.ToUpper() - s5.GuardExtension() ' Noncompliant FP FIXME + s5.GuardExtension() s5.ToUpper() - s6.GuardExtensionMoreAttributes() ' Noncompliant FP FIXME + s6.GuardExtensionMoreAttributes() s6.ToUpper() - s7.GuardExtensionMoreArguments(Nothing, Nothing) ' Noncompliant FP FIXME + s7.GuardExtensionMoreArguments(Nothing, Nothing) s7.ToUpper() End Sub @@ -535,3 +535,18 @@ Public Class Nancy_Repros End Sub End Class + +Public Class ShouldExecuteLambdas + + Public Sub Lambdas(Arg As Object) + Dim SingleLineFunction As Func(Of String) = Function() Arg.ToString + Dim MultiLineFunction As Func(Of String) = Function() + Return Arg.ToString + End Function + Dim SingleLineAction As Action = Sub() Arg.ToString() + Dim MultiLineAction As Action = Sub() + Arg.ToString() + End Sub + End Sub + +End Class