Skip to content

SageBuilder::function_declaration_ownership

Exact, typed structural ownership established by function‐declaration builders. Invalid kind/owner combinations cannot be constructed.

Synopsis

Declared in <SageIII/sageInterface/sageBuilder.h>

class function_declaration_ownership;

Enums

Name

Description

kind

semantic_lookup_publication

special_member_kind

Special‐member identity that must be known before a member declaration's structural initializer‐list child is source‐classified.

Member Functions

Name

Description

getDeclarationGroupOwner

getKind

getSemanticLookupPublication

getSourceInsertionAnchor

getSourceInsertionAtTop

getSourceInstantiationDirectiveOwner

getSourceInterfaceBodyOwner

getSourceLexicalOwner

getSourceReplacementTarget

getSourceStatementFunctionOwner

getSpecialMemberKind

getTemplateRequiresClause

getTrailingRequiresClause

semanticSymbolTableKey

Return the exact symbol‐table key for this construction transaction.

sourceDeclaratorUsesWrappedFunctionType

withCanonicalFunctionTarget

Retarget an in‐progress redeclaration or canonical‐replacement transaction after re‐entrant construction has re‐rooted the same exact function family. All other typed construction properties are preserved. The replacement must be the family's self‐canonical declaration.

withSemanticParameterListForWrappedFunctionDeclarator

Preserve a source function declarator whose complete type comes from a typeof specifier and therefore owns semantic parameters but no written parameter‐list child. This is a construction contract, not an unparser recovery mode.

withSpecialMemberKind

Add exact special‐member identity to a function construction transaction. This is valid only for member‐function builders and cannot be changed once present.

withTemplateRequiresClause

Make a translated template‐head requires‐clause part of a function template's overload identity before its declaration and symbol are constructed. The expression must be detached and is transferred to the newly constructed template function declaration.

withTrailingRequiresClause

Make a translated trailing requires‐clause part of the function overload identity before any declaration or symbol is constructed. The expression must be detached; the builder transfers its ownership to the declaration it constructs.

withoutSemanticLookupForRejectedTemplateInstantiation

Retain a semantically rejected template instantiation in the auxiliary AST while prohibiting construction of a lookup symbol. The builder validates that this contract is used only for semantic template instantiations; it never publishes and then removes a symbol.

Static Member Functions

Name

Description

semanticAuxiliary

semanticAuxiliaryCanonicalReplacementOf

Publish a distinct semantic declaration while atomically re‐rooting an already published semantic declaration family and its one direct symbol. The replacement target must be exactly auxiliary‐owned in the same semantic scope.

semanticAuxiliaryPendingExactSource

Publish through semantic auxiliary ownership while leaving the complete function declaration subtree unclassified for one exact frontend source publication. This transaction is valid only in frontend‐construction mode and must not be used for defining declarations.

semanticAuxiliaryRedeclarationOf

Publish a distinct semantic declaration in the exact auxiliary owner of an already published function family. The target remains canonical and its direct symbol is reused without name/type lookup.

semanticGroupMember

sourceGroupMember

sourceGroupRedeclaration

Publish a source declaration‐group member while joining an already published exact function family. The group remains the structural owner and the target supplies the canonical declaration/symbol identity.

sourceInstantiationDirectiveMember

sourceInterfaceBody

sourceLexical

sourceLexicalAtTop

sourceLexicalBefore

sourceLexicalCanonicalReplacementAtTop

Publish a generated declaration at the beginning of an exact lexical owner and make it the canonical declaration/symbol basis of an existing declaration family.

sourceLexicalCanonicalReplacementBefore

Publish a generated declaration immediately before an exact source anchor and make it the canonical declaration/symbol basis of an existing declaration family. The target remains in its original lexical owner.

sourceLexicalCanonicalReplacementIn

Publish a source declaration in its exact lexical owner while replacing a later source redeclaration that was necessarily constructed first by a re‐entrant frontend translation. The replacement target remains in its own lexical source position; only the canonical declaration/symbol basis is re‐rooted to the earlier source declaration.

sourceLexicalIn

sourceLexicalPendingExactSourceIn

Construct a frontend source declaration with its exact semantic scope, but keep it physically detached until the frontend has published the immutable source range and translation‐unit order. This transaction is valid only in frontend‐construction mode.

sourceLexicalPendingExactSourceRedeclarationIn

Construct a distinct source redeclaration in its exact lexical owner, join an already published canonical function family, and leave the declaration subtree unclassified until the frontend publishes its exact source ranges. This is the source/redeclaration transaction for a declaration whose lexical and semantic owners differ, such as a qualified friend member declaration.

sourceLexicalPendingFriendSpecializationIn

Construct one dependent friend template‐id source surface in its exact class lexical owner and namespace semantic scope. Clang has not selected a concrete specialization declaration in this state, so the node carries its typed primary‐template identity and deliberately publishes no independent function symbol or redeclaration‐chain edge.

sourceLexicalRedeclarationIn

Publish a distinct source declaration in its exact lexical owner while joining an already published canonical function family. The target remains the canonical declaration and its one direct symbol is reused; no name/type lookup is permitted to select another overload family.

sourceReplacementOf

sourceStatementFunction

Private Member Functions

Name

function_declaration_ownership [constructor]

Non-Member Functions

Name

Description

buildDefiningFunctionDeclaration

Build a function declaration with a function body

buildDefiningMemberFunctionDeclaration

Build a defining ( non‐prototype) member function declaration

buildNondefiningFunctionDeclaration

Build a prototype for an existing function declaration (defining or nondefining is fine)

buildNondefiningFunctionDeclaration

Build a prototype for a function, handle function type, symbol etc transparently

buildNondefiningMemberFunctionDeclaration

Build a prototype member function declaration

buildNondefiningProcedureHeaderStatement

Build a nondefining SgProcedureHeaderStatement, handle function type, symbol etc transparently

buildProcedureHeaderStatement

Build a defining Fortran procedure with an explicit lexical source form.

buildProcedureHeaderStatementFromExactDefinition

Complete a bottom‐up Fortran procedure construction around its exact preconstructed definition and body. The definition is consumed exactly once and must already carry final source classification and scope identity.

Created with MrDocs