introstructuredependenciescase studieslanguagesissueslicensingadvanced

An analyzer for C#, that reads .NET assemblies, is no longer under development. It has been replaced by a .NET Compiler Platform ("Roslyn") based C# analyzer.

The following progress was made in the analyzer's pre-release development before it was cancelled:


yield return


added script to run spellcheck before push
running at this point will include git log for new commits


added spellcheck

test case variable declaration class named to match more descriptive file name


assembly paths in a directory are sorted
avoids inconsistencies between file and operating systems

analysis of directories

yaml output line by line

C# test projects built in parallel

assembly files are read asynchronously


casting of classes

file analysis as an executable

field references
dependencies on the field added, but not its type


dependencies on nested classes include parent


Git log on website
publicly show development progress before first release


dependencies don't specify type or namespace for calls within same class


collect sequence replaced with more specific choose option

spaces before brackets
no unnecessary brackets around discriminated union cases

interface generic parameter constraints

method reference instructions
e.g. calls


field test case warning suppression

file-system tests fail with full test case path, actual and expected

standardized on singular test case names


fields of automatic events ignored

ignore fields of automatic properties

test case for operator overload of unary plus
readability of naming (e.g. op_UnaryPlus) could be improved

methods no longer depend on parent class

used expression body for test case

indexer test case

event items instead of add/remove methods


property items instead of getter/setter methods


added variables types and no duplicate types

generic parameter constraints

generic arguments

test cases for generic parameters on classes

specified display name for tests
shorter than inferred name with namespace


removed namespaces from test cases where irrelevant
makes visual comparison of actual and expected easier

parameterized constructors

base interfaces

reordered f# files top-down
for readability and more type inference

base classes


parameter and return types of class and interface methods

interface methods test case

alphabetically ordered namespace items and delegate types

delegate parameter types

dependencies for return type of delegates


namespace grouping into hierarchy of items independent of the type items contained inside
for reuse grouping dependencies into namespaces

yaml key/value lines mapping separated from items
doesn't require exposing of private for specific tests

support for identifier only items move to yaml


interface with nested class test case

moved method and nested test cases into class directory


moved namespace test cases into a namespace directory


yaml tests for empty child items

code coverage totals displayed e.g. when not 100%

test script coverage threshold errors raised from report generator instead of altcover
altcover was only measuring statement and its branch calculation is wrong

test results (trx) has same file name for each run

test script generates report even when code coverage lower than threshold

added test for interfaces

added test for yaml empty block sequences
pattern for empty cannot to be ignored in isolation from code coverage
not including pattern and suppressing F# warning still generates CIL that is detected by code coverage

test script set to exit on error

test for delegates

added test for enum

removed yaml sequence for single child items


4 space indentation for readability

nested classes


moved types into namespaces and separate files

test case for single class with no namespace

ancestor namespaces


parent namespace

VS Code settings for whitespace


deleted file that was never used

avoided package restore error for test case projects

namespaces as parent item
avoided type / namespace conflict of "File" between implementation and test projects
YAML serialization library no longer used as it nor an alternative has support for F# types and .NET Core


Azure pipelines

test script added shebang and reformatted

single class without namespace