private NamespaceDeclarationTranslation CreateNewNamespace(string identifier, BaseTypeDeclarationTranslation typeDeclarationTranslation) { NamespaceDeclarationTranslation newNamespaceTranslation = new NamespaceDeclarationTranslation(); newNamespaceTranslation.Name = new IdentifierNameTranslation() { SyntaxString = identifier, Parent = newNamespaceTranslation }; newNamespaceTranslation.Members = new SyntaxListTranslation <MemberDeclarationSyntax, MemberDeclarationTranslation>() { Parent = newNamespaceTranslation }; newNamespaceTranslation.Members.Add(typeDeclarationTranslation); newNamespaceTranslation.IsExport = true; return(newNamespaceTranslation); }
public static string TranslateConvernsion(Conversion conversion, NamespaceDeclarationTranslation ns, string innerTranslation) { var name = Helper.GetUniqueHashName(conversion.MethodSymbol.OriginalDefinition); var clss = Helper.GetClassOfMethod(conversion.MethodSymbol.OriginalDefinition); var generic = string.Empty; INamedTypeSymbol returnType = conversion.MethodSymbol.ReturnType as INamedTypeSymbol; if (returnType.IsGenericType) { generic = Helper.TranslateTypeFromSymbols(returnType.TypeArguments, ns?.Name.Translate()); } var fullInvoke = $"{clss}.{name}"; if (ns != null) { fullInvoke = Helper.GetReduceNameWithNamespace(fullInvoke, ns.Name.Translate()); } fullInvoke = $"{fullInvoke}{generic}"; return($"{fullInvoke}({innerTranslation})"); }