Improve documentation for FIR builders

This commit is contained in:
Leonid Startsev
2023-02-15 18:46:57 +01:00
committed by Space Team
parent 1cce57b50b
commit 8953b25c5b
2 changed files with 25 additions and 27 deletions
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. * Copyright 2010-2023 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. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@@ -108,12 +108,12 @@ public class ConstructorBuildingContext(
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
/** /**
* Creates constructor for [owner] class * Creates constructor for [owner] class.
* Created constructor is public, unless [config] changes this.
* *
* Setting [generateDelegatedNoArgConstructorCall] to true automatically generates delegating constructor call to superclass * [generateDelegatedNoArgConstructorCall] specifies whether default delegating constructor call to superclass should be generated.
* This generation works only if single superclass of the class contains constructor without arguments * This generation works only if superclass of the [owner] has constructor without arguments.
* * Custom delegated constructor calls should be generated in IR backend (see `IrGenerationExtension`).
* If you want to create custom delegated constructor call please do it in the [IrGenerationExtension]
*/ */
public fun FirExtension.createConstructor( public fun FirExtension.createConstructor(
owner: FirClassSymbol<*>, owner: FirClassSymbol<*>,
@@ -130,15 +130,13 @@ public fun FirExtension.createConstructor(
} }
/** /**
* Creates constructor for [owner] object * Creates private primary constructor without parameters for [owner] object.
* This constructor will be private primary constructor without parameters
* *
* This is a shorthand for createConstructor() which is useful for creating constructors for companions and other objects, as they should be private * This is a shorthand for [createConstructor] which is useful for creating constructors for companions and other objects, as they should be private.
* *
* Setting [generateDelegatedNoArgConstructorCall] to true automatically generates delegating constructor call to superclass * [generateDelegatedNoArgConstructorCall] specifies whether default delegating constructor call to superclass should be generated.
* This generation works only if single superclass of the class contains constructor without arguments * This generation works only if superclass of the [owner] has constructor without arguments.
* * Custom delegated constructor calls should be generated in IR backend (see `IrGenerationExtension`).
* If you want to create custom delegated constructor call please do it in the [IrGenerationExtension]
*/ */
public fun FirExtension.createDefaultPrivateConstructor( public fun FirExtension.createDefaultPrivateConstructor(
owner: FirClassSymbol<*>, owner: FirClassSymbol<*>,
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors. * Copyright 2010-2023 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. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@@ -34,16 +34,16 @@ public class SimpleFunctionBuildingContext(
private var extensionReceiverTypeProvider: ((List<FirTypeParameter>) -> ConeKotlinType)? = null private var extensionReceiverTypeProvider: ((List<FirTypeParameter>) -> ConeKotlinType)? = null
/** /**
* Sets [type] as extension receiver type of constructed function * Sets [type] as extension receiver type of the function.
*/ */
public fun extensionReceiverType(type: ConeKotlinType) { public fun extensionReceiverType(type: ConeKotlinType) {
extensionReceiverType { type } extensionReceiverType { type }
} }
/** /**
* Sets type, provided by [typeProvider], as extension receiver type of constructed function * Sets type, provided by [typeProvider], as extension receiver type of the function.
* *
* Use this overload when extension receiver type uses type parameters of constructed function * Use this overload when extension receiver type references type parameters of the function.
*/ */
public fun extensionReceiverType(typeProvider: (List<FirTypeParameter>) -> ConeKotlinType) { public fun extensionReceiverType(typeProvider: (List<FirTypeParameter>) -> ConeKotlinType) {
require(extensionReceiverTypeProvider == null) { "Extension receiver type is already initialized" } require(extensionReceiverTypeProvider == null) { "Extension receiver type is already initialized" }
@@ -85,9 +85,9 @@ public class SimpleFunctionBuildingContext(
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
/** /**
* Creates a member function for [owner] class with [returnType] return type * Creates a member function for [owner] class with specified [returnType].
* *
* Type and value parameters can be configured with [config] builder lambda * Type and value parameters can be configured with [config] builder.
*/ */
public fun FirExtension.createMemberFunction( public fun FirExtension.createMemberFunction(
owner: FirClassSymbol<*>, owner: FirClassSymbol<*>,
@@ -100,10 +100,10 @@ public fun FirExtension.createMemberFunction(
} }
/** /**
* Creates a member function for [owner] class with return type provided by [returnTypeProvider] * Creates a member function for [owner] class with return type provided by [returnTypeProvider].
* Use this overload when return type uses type parameters of constructed property * Use this overload when return type references type parameters of created function.
* *
* Type and value parameters can be configured with [config] builder lambda * Type and value parameters can be configured with [config] builder.
*/ */
public fun FirExtension.createMemberFunction( public fun FirExtension.createMemberFunction(
owner: FirClassSymbol<*>, owner: FirClassSymbol<*>,
@@ -117,9 +117,9 @@ public fun FirExtension.createMemberFunction(
} }
/** /**
* Creates a top-level function with [returnType] return type * Creates a top-level function with [callableId] and specified [returnType].
* *
* Type and value parameters can be configured with [config] builder lambda * Type and value parameters can be configured with [config] builder.
*/ */
public fun FirExtension.createTopLevelFunction( public fun FirExtension.createTopLevelFunction(
key: GeneratedDeclarationKey, key: GeneratedDeclarationKey,
@@ -131,10 +131,10 @@ public fun FirExtension.createTopLevelFunction(
} }
/** /**
* Creates a top-level function for [owner] class with return type provided by [returnTypeProvider] * Creates a top-level function with [callableId] and return type provided by [returnTypeProvider].
* Use this overload when those types use type parameters of constructed property * Use this overload when return type references type parameters of created function.
* *
* Type and value parameters can be configured with [config] builder lambda * Type and value parameters can be configured with [config] builder.
*/ */
public fun FirExtension.createTopLevelFunction( public fun FirExtension.createTopLevelFunction(
key: GeneratedDeclarationKey, key: GeneratedDeclarationKey,