saveourtool/diktat
Vedi su GitHub`WRONG_NAME_OF_VARIABLE_INSIDE_ACCESSOR` false positive
Open
#1935 aperta il 1 lug 2024
buggood first issue
Metriche repository
- Star
- (571 star)
- Metriche merge PR
- (Metriche PR in attesa)
Descrizione
Describe the bug
Here's a piece of code I have:
public abstract class Observable<T> {
public abstract val value: T
public abstract fun subscribe(subscriber: Subscriber<T>): Subscription
public inline fun <R> transform(crossinline block: Transform<T, R>): Observable<R> =
object : Observable<R>() {
override fun subscribe(subscriber: Subscriber<R>): Subscription =
this@Observable.subscribe { subscriber(block(it)) }
@Suppress("WRONG_NAME_OF_VARIABLE_INSIDE_ACCESSOR")
override val value: R
get() = block(this@Observable.value) // I can't use the `field` property here
}
public companion object
}
The problem is diktat claims I have to use a field property instead of this@Observable.value which isn't technically possible in this case.
Perhaps the case is non-trivial for the parser, and if I had used a named private class instead of an anonymous object, this could have been avoided, but I think I should point out that such snippets happen too.
Environment information
- diktat version: 2.0.0
- build tool (maven/gradle): Gradle
- how is diktat run (CLI, plugin, etc.): plugin
- kotlin version: 2.0.0
- operating system: macOS Sonoma 14.3