Skip to content

Analysis release 2.2.1

Choose a tag to compare

@github-actions github-actions released this 23 Oct 07:35
· 67 commits to main since this release

Added 🚀

  • Local changes and past commits in one step: ccsh analyse takes --local-changes to map only the files you
    changed since your last push, and --commit to map the codebase as it was at a commit, tag, branch or date.

  • Inheritance on leaf edges: a leaf edge from a Java, Kotlin or C# class to the class it extends or the interface
    it implements says so, as inheritance or implementation.

Fixed 🐞

  • Same name in several places: dependencyparser links a class that several files declare under one name to the
    copy nearest to the file that uses it, instead of to whichever copy it read first, in every language but C#.

  • Imports in Java and Kotlin: dependencyparser resolves a Java or Kotlin name only by the language's import
    rules, so it no longer links it to a class of the same name that no import makes visible, that two star imports
    make ambiguous, or that a Kotlin import renames with as.

  • Using directives in C#: dependencyparser looks a C# name up in each enclosing namespace before the using
    directives written around it, so a class of the namespace wins over a using at the top of the file, a name two
    using directives both import links to neither, and Settings.Config inside namespace Shop means
    Shop.Settings.Config before a top-level Settings.Config, unless written with global::.

  • Attributes in C#: dependencyparser links a C# attribute such as [Audited] to whichever of Audited and
    AuditedAttribute is the attribute class, instead of to both.

  • Using aliases in C#: dependencyparser links a name written through a C# using alias such as
    using Dto = Shop.Dto; to the type or namespace it stands for, and no longer takes the alias for an import of
    every type of that namespace.

  • Names written with their class or package: dependencyparser links a Java or Kotlin name written with its class
    or package in front, such as Outer.Nested, Speed.class, com.ex.Config or a Kotlin import alias in front of
    a nested class, to that declaration, and not also to the class in front.

  • Nested classes: dependencyparser keeps a Java, Kotlin or C# nested class below the class around it, no longer
    counts what it uses for the outer class, links a name to the nested class of the own or the base class before any
    other class of that name, and finds a Java or Kotlin one through an import such as import …CreatureFacade.Builder.

  • Type parameters and local classes: dependencyparser no longer links a Java, Kotlin or C# type parameter or a
    Java or Kotlin local class to a class of the same name elsewhere in the package.

  • Private Kotlin declarations: dependencyparser links a Kotlin private top-level declaration only from its own
    file, so two files with a private class of the same name each link to their own.

  • No links between unrelated languages: in a repository with several languages, dependencyparser no longer
    links a name to a declaration of a language that cannot refer to it, such as a Python name to a SQL table.