logo
class

compiler::ResolveImports

sys::Obj
  compiler::CompilerSupport
    compiler::CompilerStep
      compiler::ResolveImports

ResolveImports maps every Using node in each CompilationUnit to a pod and ensures that it exists and that no imports are duplicated. Then we create a map for all the types which are imported into the CompilationUnit so that the Parser can quickly distinguish between a type identifier and other identifiers. The results of this step populate Using.resolvedXXX and CompilationUnit.importedTypes.

Slots

make

new make(Compiler compiler)

Constructor takes the associated Compiler

resolveQualified

static const CType resolveQualified(CompilerSupport cs, Str podName, Str typeName, Location location)

Resolve a fully qualified type name into its CType representation. This may be a TypeDef within the compilation units or could be an imported type. If the type name cannot be resolved then we log an error and return null.

resolved

Str:CPod resolved

run

virtual Void run()

Run the step