Browse Source

Added checking of function parameters for ignored types.

pull/1/head
triton 13 years ago
parent
commit
ffdd10ef42
  1. 16
      src/Generator/Passes/ResolveIncompleteDeclsPass.cs

16
src/Generator/Passes/ResolveIncompleteDeclsPass.cs

@ -18,16 +18,18 @@ namespace Cxxi.Passes
return false; return false;
if (!@class.IsIncomplete) if (!@class.IsIncomplete)
return false; goto Out;
if (@class.CompleteDeclaration != null) if (@class.CompleteDeclaration != null)
return false; goto Out;
@class.CompleteDeclaration = Library.FindCompleteClass(@class.Name); @class.CompleteDeclaration = Library.FindCompleteClass(@class.Name);
if (@class.CompleteDeclaration == null) if (@class.CompleteDeclaration == null)
Console.WriteLine("Unresolved declaration: {0}", @class.Name); Console.WriteLine("Unresolved declaration: {0}", @class.Name);
Out:
return base.VisitClassDecl(@class); return base.VisitClassDecl(@class);
} }
@ -57,6 +59,7 @@ namespace Cxxi.Passes
function.ExplicityIgnored = true; function.ExplicityIgnored = true;
Console.WriteLine("Function '{0}' was ignored due to {1} return decl", Console.WriteLine("Function '{0}' was ignored due to {1} return decl",
function.Name, msg); function.Name, msg);
return false;
} }
foreach (var param in function.Parameters) foreach (var param in function.Parameters)
@ -66,6 +69,15 @@ namespace Cxxi.Passes
function.ExplicityIgnored = true; function.ExplicityIgnored = true;
Console.WriteLine("Function '{0}' was ignored due to {1} param", Console.WriteLine("Function '{0}' was ignored due to {1} param",
function.Name, msg); function.Name, msg);
return false;
}
if (HasInvalidType(param.Type, out msg))
{
function.ExplicityIgnored = true;
Console.WriteLine("Function '{0}' was ignored due to {1} param",
function.Name, msg);
return false;
} }
} }

Loading…
Cancel
Save