class compiler::ResolveImports

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

Source

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.

make

new make(Compiler compiler)

Source

Constructor takes the associated Compiler

resolvePod

static CPod? resolvePod(CompilerSupport cs, Str podName, Loc loc)

Source

Resolve a pod name into its CPod representation. If pod cannot be resolved then log an error and return null.

resolveQualified

static CType? resolveQualified(CompilerSupport cs, Str podName, Str typeName, Loc loc)

Source

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 := [Str:CPod][:]

Source

run

virtual override Void run()

Source

Run the step