private void CreateFunctions_Function( ref TranslationUnitData transUnit, ES_NamespaceData.Builder namespaceBuilder, SymbolStack <FrontendSymbol> symbols, SourceData unitSrc, ES_TypeInfo *parentType, ES_AstFunctionDefinition funcDef ) { Debug.Assert(Environment is not null); Debug.Assert(EnvironmentBuilder is not null); var sourceUnit = transUnit.Name; var idPool = Environment.IdPool; // Get the namespace and function names. var funcName = Environment.IdPool.GetIdentifier(funcDef.Name.Text.Span); // Get the fully-qualified name. ES_FullyQualifiedName fullyQualifiedName; if (parentType == null) { var namespaceName = namespaceBuilder.NamespaceData.NamespaceName; fullyQualifiedName = new ES_FullyQualifiedName(namespaceName, funcName); } else { using var namespaceBytes = UnmanagedArray <byte> .GetArray(parentType->Name.NamespaceName.Length + 2 + parentType->Name.TypeName.Length); var span = namespaceBytes.Span; parentType->Name.NamespaceName.Span.CopyTo(span); span = span [parentType->Name.NamespaceName.Length..];