Browse Source

Pass the type map database to the type checker.

pull/1/head
triton 13 years ago
parent
commit
23e85aada7
  1. 18
      src/Generator/Types/Checker.cs

18
src/Generator/Types/Checker.cs

@ -1,6 +1,8 @@ @@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Cxxi.Generators;
using Cxxi.Types;
namespace Cxxi.Passes
{
@ -8,9 +10,11 @@ namespace Cxxi.Passes @@ -8,9 +10,11 @@ namespace Cxxi.Passes
{
private int uniqueName;
private TypeRefsVisitor typeRefs;
private ITypeMapDatabase typeMapDatabase;
public Preprocess()
public Preprocess(ITypeMapDatabase database)
{
typeMapDatabase = database;
typeRefs = new TypeRefsVisitor();
}
@ -169,7 +173,7 @@ namespace Cxxi.Passes @@ -169,7 +173,7 @@ namespace Cxxi.Passes
/// reasons: incomplete definitions, being explicitly ignored, or also
/// by being a type we do not know how to handle.
/// </remarks>
static bool HasInvalidType(Type type, out string msg)
bool HasInvalidType(Type type, out string msg)
{
if (type == null)
{
@ -193,7 +197,7 @@ namespace Cxxi.Passes @@ -193,7 +197,7 @@ namespace Cxxi.Passes
return false;
}
static bool HasInvalidDecl(Declaration decl, out string msg)
bool HasInvalidDecl(Declaration decl, out string msg)
{
if (decl == null)
{
@ -229,15 +233,15 @@ namespace Cxxi.Passes @@ -229,15 +233,15 @@ namespace Cxxi.Passes
return decl.Visit(checker);
}
static bool IsTypeIgnored(Type type)
bool IsTypeIgnored(Type type)
{
var checker = new TypeIgnoreChecker();
var checker = new TypeIgnoreChecker(typeMapDatabase);
return type.Visit(checker);
}
static bool IsDeclIgnored(Declaration decl)
bool IsDeclIgnored(Declaration decl)
{
var checker = new TypeIgnoreChecker();
var checker = new TypeIgnoreChecker(typeMapDatabase);
return decl.Visit(checker);
}

Loading…
Cancel
Save