Browse Source

Fixed the reporting of compilation errors.

Signed-off-by: Dimitar Dobrev <dpldobrev@yahoo.com>
pull/206/head
Dimitar Dobrev 12 years ago
parent
commit
445f460b47
  1. 3
      src/AST/ASTContext.cs
  2. 4
      src/Core/Diagnostics.cs
  3. 8
      src/Generator/Driver.cs

3
src/AST/ASTContext.cs

@ -26,6 +26,8 @@ namespace CppSharp.AST
/// Finds an existing module or creates a new one given a file path. /// Finds an existing module or creates a new one given a file path.
public TranslationUnit FindOrCreateModule(string file) public TranslationUnit FindOrCreateModule(string file)
{
if (!file.StartsWith("<"))
{ {
try try
{ {
@ -36,6 +38,7 @@ namespace CppSharp.AST
// Normalization errors are expected when dealing with virtual // Normalization errors are expected when dealing with virtual
// compiler files like <built-in>. // compiler files like <built-in>.
} }
}
var module = TranslationUnits.Find(m => m.FilePath.Equals(file)); var module = TranslationUnits.Find(m => m.FilePath.Equals(file));

4
src/Core/Diagnostics.cs

@ -129,12 +129,12 @@ namespace CppSharp
} }
public static void EmitError(this IDiagnosticConsumer consumer, public static void EmitError(this IDiagnosticConsumer consumer,
string msg, params object[] args) string msg)
{ {
var diagInfo = new DiagnosticInfo var diagInfo = new DiagnosticInfo
{ {
Kind = DiagnosticKind.Error, Kind = DiagnosticKind.Error,
Message = string.Format(msg, args) Message = msg
}; };
consumer.Emit(diagInfo); consumer.Emit(diagInfo);

8
src/Generator/Driver.cs

@ -337,8 +337,6 @@ namespace CppSharp
} }
public void CompileCode() public void CompileCode()
{
try
{ {
var assemblyFile = string.IsNullOrEmpty(Options.LibraryName) ? var assemblyFile = string.IsNullOrEmpty(Options.LibraryName) ?
"out.dll" : Options.LibraryName + ".dll"; "out.dll" : Options.LibraryName + ".dll";
@ -374,12 +372,6 @@ namespace CppSharp
foreach (var error in errors.Where(error => !error.IsWarning)) foreach (var error in errors.Where(error => !error.IsWarning))
Diagnostics.EmitError(error.ToString()); Diagnostics.EmitError(error.ToString());
} }
catch (Exception exception)
{
Diagnostics.EmitError("Could not compile the generated source code");
Diagnostics.EmitMessage(exception.ToString());
}
}
public void AddTranslationUnitPass(TranslationUnitPass pass) public void AddTranslationUnitPass(TranslationUnitPass pass)
{ {

Loading…
Cancel
Save