Neuigkeiten zum ReSharper 5 (Teil 2)
Kommentare

Dynamischer Code
Dynamischer Code stellt den ReSharper vor eine neue Herausforderung. Lässt sich bei statischer Typisierung noch das meiste berechnen beginnt bei dynamic die Raterei.
Ein wenig Raten

Dynamischer Code

Dynamischer Code stellt den ReSharper vor eine neue Herausforderung. Lässt sich bei statischer Typisierung noch das meiste berechnen beginnt bei dynamic die Raterei.

Ein wenig Raten kann der ReSharper bereits:

Abb. 6: Einfacher dynamischer Code
Abb. 6: Einfacher dynamischer Code

Wird eine Eigenschaft oder Methode einmal benutzt, nimmt sie der ReSharper in die Vorschlagliste mit auf:

Abb. 7: Vorschläge für Properties und Methoden
Abb. 7: Vorschläge für Properties und Methoden

Sobald es jedoch etwas komplizierter wird, gibt er auf:

Abb. 8: Komplexer dynamischer Code
Abb. 8: Komplexer dynamischer Code

Nicht das JetBrains zu wenig Erfahrung mit dynamischen Typsystemen und der damit verbundenen Raterei hätte. Sowohl RubyMine als auch PhpStorm, beides JetBrains-Produkte, tun darin einen guten Job. Es bleibt also zu hoffen, dass dieses Wissen auf den ReSharper in zukünftigen Versionen übertragen wird.

Wird in C# 3.0 von einem IEnumerable auf IEnumerable

ein explizites Cast() benötigt, erkennt ReSharper, dass dies in C# 4 durch die Unterstützung von Varianzen in generischen Interfaces überflüssig wird.
Abb. 9: Unnecessary Cast
Abb. 9: Unnecessary Cast
Codeanalyse

Zwei neue Features steuert der ReSharper 5.0 für die Analyse von Quellcode bei. Aufrufverfolgung (Call-tracking) und Wertverfolgung (Value-tracking).

Für den Beispiel-Code in Listing 1 lassen sich eine Reihe von Reports ableiten:

Abb. 10: Listing 1
Abb. 10: Listing 1

Im Kontext-Menu von Methode2 ist über Inspect > Incoming calls einzusehen welche Aufrufpfade diese Methode erreichen.

Abb. 11: Eingehende Aufrufe
Abb. 11: Eingehende Aufrufe

Inspect > Value origin auf den Parameter meinWert zeigt woher und über welchen Weg Werte ankommen.

Abb. 12: Eingehende Werte
Abb. 12: Eingehende Werte

Zu diesen beiden Auswertungen gibt es ebenfalls die Pendants Outgoing calls und Value destination.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -