Berapa banyak dari Anda yang telah menggunakan pustaka pihak ketiga saat menulis kode Anda? Pertanyaannya retoris, karena tanpa menggunakan perpustakaan pihak ketiga, pengembangan beberapa produk akan tertunda untuk waktu yang sangat, sangat lama, karena untuk menyelesaikan setiap masalah, seseorang harus "menemukan kembali roda". Namun, selain keuntungan, ada juga kerugian dalam menggunakan pustaka pihak ketiga. Salah satu kelemahan ini baru-baru ini menyentuh penganalisis PVS-Studio untuk C #. Untuk waktu yang lama, penganalisis tidak dapat menyelesaikan analisis proyek besar karena penggunaan metode SymbolFinder.FindReferencesAsync dari Roslyn API dalam diagnostik V3083.
PVS-Studio, , . , , . ! . Alarm! Alarm! ! , . , 3 C# . V3083. , . V3083 C# . , :
public class IncorrectEventUse
{
public event EventHandler EventOne;
protected void InvokeEventTwice(object o, Eventers args)
{
if (EventOne != null)
{
EventOne(o, args);
EventOne.Invoke(o, args);
}
}
}
V3083 EventOne InvokeEventTwice. . , V3083 :
;
, ;
, .
- .
- . V3083 , ( : Visual Studio, Rider, SonarQube), . , . Roslyn API SymbolFinder.FindReferencesAsync, V3083, " ".
: , , . . , - . , , . 100 % V3083.
V3083
, , , . , , open-source ( 90 ). open-source ? " ", , . V3083. , , – V3083 . . SymbolFinder.FindReferencesAsync V3083 9 %. - , , :
, , - V3083.
, Roslyn API, ! . , SymbolFinder.FindReferencesAsync, Microsoft.CodeAnalysis.FindSymbols.SymbolFinder, .
PVS-Studio, .
V3083 , 7.12 SymbolFinder.FindReferencesAsync.
, C# , V3083. , , . 50, .
, : Valery Komarov. Roslyn API: Why PVS-Studio Was Analyzing the Project So Long.