1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
//===-- gen/semantic.d - Additional LDC semantic analysis ---------*- D -*-===//
//
// LDC – the LLVM D compiler
//
// This file is distributed under the BSD-style LDC license. See the LICENSE
// file for details.
//
//===----------------------------------------------------------------------===//
module gen.semantic;
import dmd.arraytypes;
import dmd.dsymbol;
import dmd.dmodule;
extern(C++) void dcomputeSemanticAnalysis(Module m);
extern(C) int hasComputeAttr(Dsymbol m);
extern(C++) void runAllSemanticAnalysisPlugins(Module m);
extern(C++) void extraLDCSpecificSemanticAnalysis(ref Modules modules)
{
// First finish DCompute SemA for all modules, before calling plugins.
foreach(m; modules[])
{
if (hasComputeAttr(m)) {
dcomputeSemanticAnalysis(m);
}
}
foreach(m; modules[])
{
runAllSemanticAnalysisPlugins(m);
}
}
|