All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlin.fir.analysis.diagnostics.FirDiagnosticFactoryDsl.kt Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
/*
 * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
 * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
 */

package org.jetbrains.kotlin.fir.analysis.diagnostics

import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.diagnostics.*
import org.jetbrains.kotlin.fir.FirSourceElement
import kotlin.properties.ReadOnlyProperty
import kotlin.reflect.KProperty

fun  warning0(
    positioningStrategy: SourceElementPositioningStrategy

= SourceElementPositioningStrategy.DEFAULT ): DiagnosticFactory0DelegateProvider { return DiagnosticFactory0DelegateProvider(Severity.WARNING, positioningStrategy) } fun warning1( positioningStrategy: SourceElementPositioningStrategy

= SourceElementPositioningStrategy.DEFAULT ): DiagnosticFactory1DelegateProvider { return DiagnosticFactory1DelegateProvider(Severity.WARNING, positioningStrategy) } fun warning2( positioningStrategy: SourceElementPositioningStrategy

= SourceElementPositioningStrategy.DEFAULT ): DiagnosticFactory2DelegateProvider { return DiagnosticFactory2DelegateProvider(Severity.WARNING, positioningStrategy) } fun warning3( positioningStrategy: SourceElementPositioningStrategy

= SourceElementPositioningStrategy.DEFAULT ): DiagnosticFactory3DelegateProvider { return DiagnosticFactory3DelegateProvider(Severity.WARNING, positioningStrategy) } fun error0( positioningStrategy: SourceElementPositioningStrategy

= SourceElementPositioningStrategy.DEFAULT ): DiagnosticFactory0DelegateProvider { return DiagnosticFactory0DelegateProvider(Severity.ERROR, positioningStrategy) } fun error1( positioningStrategy: SourceElementPositioningStrategy

= SourceElementPositioningStrategy.DEFAULT ): DiagnosticFactory1DelegateProvider { return DiagnosticFactory1DelegateProvider(Severity.ERROR, positioningStrategy) } fun error2( positioningStrategy: SourceElementPositioningStrategy

= SourceElementPositioningStrategy.DEFAULT ): DiagnosticFactory2DelegateProvider { return DiagnosticFactory2DelegateProvider(Severity.ERROR, positioningStrategy) } fun error3( positioningStrategy: SourceElementPositioningStrategy

= SourceElementPositioningStrategy.DEFAULT ): DiagnosticFactory3DelegateProvider { return DiagnosticFactory3DelegateProvider(Severity.ERROR, positioningStrategy) } /** * Note that those functions can be applicable only for factories * that takes `PsiElement` as first type parameter */ fun existing0(): DiagnosticFactory0DelegateProvider { return DiagnosticFactory0DelegateProvider(Severity.ERROR, SourceElementPositioningStrategy.DEFAULT) } fun existing1(): DiagnosticFactory1DelegateProvider { return DiagnosticFactory1DelegateProvider(Severity.ERROR, SourceElementPositioningStrategy.DEFAULT) } fun existing2(): DiagnosticFactory2DelegateProvider { return DiagnosticFactory2DelegateProvider(Severity.ERROR, SourceElementPositioningStrategy.DEFAULT) } fun existing3(): DiagnosticFactory3DelegateProvider { return DiagnosticFactory3DelegateProvider(Severity.ERROR, SourceElementPositioningStrategy.DEFAULT) } // ------------------------------ Providers ------------------------------ class DiagnosticFactory0DelegateProvider( private val severity: Severity, private val positioningStrategy: SourceElementPositioningStrategy

) { operator fun provideDelegate(thisRef: Any?, prop: KProperty<*>): ReadOnlyProperty> { return DummyDelegate(FirDiagnosticFactory0(prop.name, severity, positioningStrategy)) } } class DiagnosticFactory1DelegateProvider( private val severity: Severity, private val positioningStrategy: SourceElementPositioningStrategy

) { operator fun provideDelegate(thisRef: Any?, prop: KProperty<*>): ReadOnlyProperty> { return DummyDelegate(FirDiagnosticFactory1(prop.name, severity, positioningStrategy)) } } class DiagnosticFactory2DelegateProvider( private val severity: Severity, private val positioningStrategy: SourceElementPositioningStrategy

) { operator fun provideDelegate(thisRef: Any?, prop: KProperty<*>): ReadOnlyProperty> { return DummyDelegate(FirDiagnosticFactory2(prop.name, severity, positioningStrategy)) } } class DiagnosticFactory3DelegateProvider( private val severity: Severity, private val positioningStrategy: SourceElementPositioningStrategy

) { operator fun provideDelegate(thisRef: Any?, prop: KProperty<*>): ReadOnlyProperty> { return DummyDelegate(FirDiagnosticFactory3(prop.name, severity, positioningStrategy)) } } private class DummyDelegate(val value: T) : ReadOnlyProperty { override fun getValue(thisRef: Any?, property: KProperty<*>): T { return value } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy