ReSharper 2023.2 EAP 5


Wsparcie C#

Obsługa domyślnych wartości parametrów w wyrażeniach lambda

W ramach prac nad obsługą aktualizacji języka C# 12, w ReSharper 2023.2 wprowadzamy obsługę domyślnych wartości parametrów w wyrażeniach lambda. Oprócz standardowego zestawu komunikatów ostrzegawczych związanych z rozpoznawaniem tej składni, dostosowaliśmy również istniejącą inspekcję, Parametr ma tę samą wartość domyślną, aby uwzględnić domyślne wartości parametrów w lambdach. Inspekcja ta będzie również uruchamiana, gdy wywołanie ma wartość argumentu, która jest taka sama jak domyślna wartość parametru w wywołanym delegacie, dzięki czemu wyrażenie będzie zbędne.

Nowe inspekcje dla lepszej kontroli nad usuwaniem obiektów

ReSharper 2023.2 wprowadza dwie nowe inspekcje kodu zaprojektowane w celu rozwiązania scenariuszy, w których na stan zwróconego obiektu może mieć negatywny wpływ jego wczesne usunięcie lub wczesne usunięcie obiektu, który go stworzył.

Gdy zmienna jest przechwytywana przez instrukcję using, zapewnia to, że obiekt jest prawidłowo usuwany, gdy wychodzi poza zakres. Zwrócenie obiektu przechwyconego przez instrukcję using może być problematyczne, ponieważ wydłuża żywotność zwracanego obiektu poza zakres metody, powodując, że obiekt jest usuwany natychmiast po powrocie. Może to prowadzić do nieoczekiwanego zachowania i problemów związanych z zasobami.

Zwrot zmiennej przechwyconej przez inspekcję instrukcji „using” ostrzega w przypadkach, gdy zwrócony obiekt jest natychmiast usuwany.

Podobnie, inspekcja Return of a task produced by 'using' captured object identyfikuje scenariusze, w których Task jest tworzony przez obiekt przechwycony przez instrukcję using, a następnie natychmiast zwracany. Aby wydłużyć czas życia obiektu jednorazowego użytku na tyle, aby zadanie mogło zostać ukończone, odpowiednia szybka poprawka wprowadzi asynchroniczne oczekiwanie na to zadanie przed jego zwrotem.

Obsługa C++

Ta kompilacja EAP wprowadza obsługę modułów biblioteki standardowej C++23 i atrybutu [[no_unique_address]] języka C++20, nowe ustawienia formatowania kodu i inne aktualizacje.

dotTrace

Grupowanie według wątków na potrzeby próbkowania, śledzenia i migawek wiersz po wierszu

dotTrace 2023.2 wprowadza opcję Grupuj według wątków i odpowiadający jej przycisk w panelu Drzewo wywołań dla migawek wydajności. Opcja ta organizuje próbkowanie, śledzenie i migawki wiersz po wierszu w oparciu o poszczególne wątki, umożliwiając głębszy wgląd w kwestie wydajności specyficzne dla wątków.

Korzystanie z tej metody grupowania może również dać lepszy widok na wydajność projektu, ponieważ drzewa wywołań z największą liczbą przodków znajdą się na górze listy, dzięki czemu wszelkie punkty zapalne będą rażąco oczywiste.

Po kliknięciu przycisku przełączania Grupuj według wątków, zobaczysz drzewa wywołań uporządkowane według wątków. Możesz przechodzić z jednego wątku do drugiego za pomocą klawiatury, a drzewa będą się rozwijać jednocześnie. Czerwone wartości procentowe po lewej stronie drzewa wywołań wskazują wyższą moc poddrzewa, pomagając na pierwszy rzut oka zidentyfikować potencjalne problemy dotyczące wydajności.