INNER CODE UNIT · C#
ContainsOpaquePointer
axmolengine/axmol · tools/bindings-generator/src/BindingGenerator.cs:1094
private static bool ContainsOpaquePointer(string type) =>
Regex.IsMatch(type, @"(?<![A-Za-z0-9_])(?:const\s+)?void\s*\*", RegexOptions.CultureInvariant);
private static bool ContainsScalarPointer(string type) =>
Regex.IsMatch(type,
@"(?<![A-Za-z0-9_])(?:const\s+)?(?:bool|char|short|int|long|long\s+long|float|double|size_t|uint\d*_t|int\d*_t)\s*\*",
RegexOptions.CultureInvariant);
private static bool HasIncompleteNamedType(string type, string context, CursorTree tree)
{
var resolved = ResolveType(type, context, tree);
foreach (Match match in Regex.Matches(resolved, @"(?:[A-Za-z_]\w*::)*[A-Za-z_]\w*"))
{
var qualifiedToken = match.Value;
var shortName = qualifiedToken[(qualifiedToken.LastIndexOf("::", StringComparison.Ordinal) + 2)..];
if (!tree.TypeNames.TryGetValue(shortName, out var candidates))
continue;
if (candidates.Any(candidate =>