// CHECK: // Mangled name: AbstractFirBasedSymbol // Public signature: /AbstractFirBasedSymbol|null[0] abstract class AbstractFirBasedSymbol where E : FirDeclaration, E : FirSymbolOwner { // CHECK: // Mangled name: AbstractFirBasedSymbol{}fir // Public signature: /AbstractFirBasedSymbol.fir|1746130073614419861[0] // Public signature debug description: {}fir lateinit var fir: E // CHECK JVM_IR: // Mangled name: AbstractFirBasedSymbol#(){}1:0 // Public signature: /AbstractFirBasedSymbol.fir.|-6624502324313406460[0] // Public signature debug description: (){}1:0 // CHECK JS_IR NATIVE: // Mangled name: AbstractFirBasedSymbol#(){} // Public signature: /AbstractFirBasedSymbol.fir.|1707733779722107125[0] // Public signature debug description: (){} get // CHECK: // Mangled name: AbstractFirBasedSymbol#(1:0){} // Public signature: /AbstractFirBasedSymbol.fir.|3965135793336265915[0] // Public signature debug description: (1:0){} set // CHECK: // Mangled name: AbstractFirBasedSymbol#(){} // Public signature: /AbstractFirBasedSymbol.|-5645683436151566731[0] // Public signature debug description: (){} constructor() /* primary */ } // CHECK: // Mangled name: Candidate // Public signature: /Candidate|null[0] class Candidate { // CHECK: // Mangled name: Candidate{}symbol // Public signature: /Candidate.symbol|-2022127689160258603[0] // Public signature debug description: {}symbol val symbol: AbstractFirBasedSymbol<*> // CHECK JVM_IR: // Mangled name: Candidate#(){}AbstractFirBasedSymbol<*> // Public signature: /Candidate.symbol.|-1417251974778824167[0] // Public signature debug description: (){}AbstractFirBasedSymbol<*> // CHECK JS_IR NATIVE: // Mangled name: Candidate#(){} // Public signature: /Candidate.symbol.|-1453516714111318019[0] // Public signature debug description: (){} get // CHECK: // Mangled name: Candidate#(AbstractFirBasedSymbol<*>){} // Public signature: /Candidate.|8793240427329821773[0] // Public signature debug description: (AbstractFirBasedSymbol<*>){} constructor(symbol: AbstractFirBasedSymbol<*>) /* primary */ } // CHECK: // Mangled name: FirCallableMemberDeclaration // Public signature: /FirCallableMemberDeclaration|null[0] interface FirCallableMemberDeclaration> : FirDeclaration, FirSymbolOwner { // CHECK: // Mangled name: FirCallableMemberDeclaration{}symbol // Public signature: /FirCallableMemberDeclaration.symbol|-2022127689160258603[0] // Public signature debug description: {}symbol abstract override val symbol: AbstractFirBasedSymbol // CHECK JVM_IR: // Mangled name: FirCallableMemberDeclaration#(){}AbstractFirBasedSymbol<1:0> // Public signature: /FirCallableMemberDeclaration.symbol.|-2189475889945454446[0] // Public signature debug description: (){}AbstractFirBasedSymbol<1:0> // CHECK JS_IR NATIVE: // Mangled name: FirCallableMemberDeclaration#(){} // Public signature: /FirCallableMemberDeclaration.symbol.|-1453516714111318019[0] // Public signature debug description: (){} abstract override get } // CHECK: // Mangled name: FirDeclaration // Public signature: /FirDeclaration|null[0] interface FirDeclaration { } // CHECK: // Mangled name: FirSymbolOwner // Public signature: /FirSymbolOwner|null[0] interface FirSymbolOwner where E : FirDeclaration, E : FirSymbolOwner { // CHECK: // Mangled name: FirSymbolOwner{}symbol // Public signature: /FirSymbolOwner.symbol|-2022127689160258603[0] // Public signature debug description: {}symbol abstract val symbol: AbstractFirBasedSymbol // CHECK JVM_IR: // Mangled name: FirSymbolOwner#(){}AbstractFirBasedSymbol<1:0> // Public signature: /FirSymbolOwner.symbol.|-2189475889945454446[0] // Public signature debug description: (){}AbstractFirBasedSymbol<1:0> // CHECK JS_IR NATIVE: // Mangled name: FirSymbolOwner#(){} // Public signature: /FirSymbolOwner.symbol.|-1453516714111318019[0] // Public signature debug description: (){} abstract get } // CHECK: // Mangled name: #foo(Candidate){} // Public signature: /foo|1785536575582425549[0] // Public signature debug description: foo(Candidate){} fun foo(candidate: Candidate): Unit