Repository navigation
build: add detekt rule against unexplained inner classes - #229
Open
sergej-koscejev wants to merge 2 commits into
Open
sergej-koscejev wants to merge 2 commits into
sergej-koscejev wants to merge 2 commits into
Conversation
…ined inner classes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New Kotlin guidelines:
A new detekt rule,
UnexplainedInnerClass, enforces the inner class bullet.What the rule reports:
The rule only checks that a comment is there. Reviewers check that the comment says why the class is inner. The rule needs no type resolution.
Evidence
Rule tests (
:detekt-rules:test, 3 tests, all pass, each compares the full list of findings)://comment and with a KDoc above them → no findingsReal build: with the comment above
JetBrainsMpsWriteremoved,:daemon:detektMainfails:./gradlew detektMain :detekt-rules:test :architecture-tests:test cpdCheckpasses.Known future hit: once #217 lands, the rule reports
Passindaemon/src/main/kotlin/com/specificlanguages/mops/daemon/WatchedFolderRefresh.kt.Passis an inner class with no comment above it, and it changes the outerrefreshedFolders.Merge Danger
Blast Radius: build
Every Kotlin module's detekt run now loads the
detekt-rulesjar. The rule is compiled against the detekt 2.0 alpha API, so a detekt upgrade may need changes to the rule.