[FIR] Do not build synthetics for static or Unit returning get

This commit is contained in:
Mikhail Glukhikh
2020-01-22 12:30:24 +03:00
parent 69ecbd93a9
commit 84c8697720
2 changed files with 8 additions and 2 deletions
@@ -7,15 +7,19 @@ package org.jetbrains.kotlin.fir.resolve.calls
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
import org.jetbrains.kotlin.fir.declarations.isStatic
import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.FirScope
import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.ProcessorAction
import org.jetbrains.kotlin.fir.symbols.AccessorSymbol import org.jetbrains.kotlin.fir.symbols.AccessorSymbol
import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.CallableId
import org.jetbrains.kotlin.fir.symbols.StandardClassIds
import org.jetbrains.kotlin.fir.symbols.SyntheticSymbol import org.jetbrains.kotlin.fir.symbols.SyntheticSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
import org.jetbrains.kotlin.fir.types.coneTypeSafe
import org.jetbrains.kotlin.load.java.propertyNameByGetMethodName import org.jetbrains.kotlin.load.java.propertyNameByGetMethodName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly
@@ -46,6 +50,8 @@ class FirSyntheticPropertiesScope(
if (fir.typeParameters.isNotEmpty()) return ProcessorAction.NEXT if (fir.typeParameters.isNotEmpty()) return ProcessorAction.NEXT
if (fir.valueParameters.isNotEmpty()) return ProcessorAction.NEXT if (fir.valueParameters.isNotEmpty()) return ProcessorAction.NEXT
if (fir.isStatic) return ProcessorAction.NEXT
if (fir.returnTypeRef.coneTypeSafe<ConeClassLikeType>()?.lookupTag?.classId == StandardClassIds.Unit) return ProcessorAction.NEXT
val synthetic = SyntheticPropertySymbol( val synthetic = SyntheticPropertySymbol(
accessorId = symbol.callableId, accessorId = symbol.callableId,
@@ -2,8 +2,8 @@
fun foo(javaClass: JavaClass) { fun foo(javaClass: JavaClass) {
javaClass.<!UNRESOLVED_REFERENCE!>something1<!> javaClass.<!UNRESOLVED_REFERENCE!>something1<!>
javaClass.<!UNRESOLVED_REFERENCE!>something2<!> javaClass.<!UNRESOLVED_REFERENCE!>something2<!>
javaClass.somethingStatic javaClass.<!UNRESOLVED_REFERENCE!>somethingStatic<!>
javaClass.somethingVoid javaClass.<!UNRESOLVED_REFERENCE!>somethingVoid<!>
javaClass.<!UNRESOLVED_REFERENCE!>ter<!> javaClass.<!UNRESOLVED_REFERENCE!>ter<!>
} }