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.
*/
@@ -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
* This generation works only if single superclass of the class contains constructor without arguments
*
* If you want to create custom delegated constructor call please do it in the [IrGenerationExtension]
* [generateDelegatedNoArgConstructorCall] specifies whether default delegating constructor call to superclass should be generated.
* 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`).
*/
public fun FirExtension.createConstructor(
owner: FirClassSymbol<*>,
@@ -130,15 +130,13 @@ public fun FirExtension.createConstructor(
}
/**
* Creates constructor for [owner] object
* This constructor will be private primary constructor without parameters
* Creates private primary constructor without parameters for [owner] object.
*
* 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
* This generation works only if single superclass of the class contains constructor without arguments
*
* If you want to create custom delegated constructor call please do it in the [IrGenerationExtension]
* [generateDelegatedNoArgConstructorCall] specifies whether default delegating constructor call to superclass should be generated.
* 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`).
*/
public fun FirExtension.createDefaultPrivateConstructor(
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.
*/
@@ -34,16 +34,16 @@ public class SimpleFunctionBuildingContext(
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) {
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) {
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(
owner: FirClassSymbol<*>,
@@ -100,10 +100,10 @@ public fun FirExtension.createMemberFunction(
}
/**
* 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
* Creates a member function for [owner] class with return type provided by [returnTypeProvider].
* 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(
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(
key: GeneratedDeclarationKey,
@@ -131,10 +131,10 @@ public fun FirExtension.createTopLevelFunction(
}
/**
* Creates a top-level function for [owner] class with return type provided by [returnTypeProvider]
* Use this overload when those types use type parameters of constructed property
* Creates a top-level function with [callableId] and return type provided by [returnTypeProvider].
* 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(
key: GeneratedDeclarationKey,