Add CharSourceRange -- a half-open character range, which will be used in IDE

integration

Motivation: libIDE clients should be simple, and they should not have to
translate token-based SourceRanges to character locations.

This also allows us to remove the dependency of DiagnosticConsumer on the
Lexer.  Now the DiagnosticEngine translates the diagnostics to CharSourceRanges
and passes character-based ranges to the DiagnosticConsumer.


Swift SVN r7173
This commit is contained in:
Dmitri Hrybenko
2013-08-12 20:15:51 +00:00
parent 67affb462a
commit 70f2b64ad9
14 changed files with 166 additions and 108 deletions

View File

@@ -15,7 +15,6 @@
//===----------------------------------------------------------------------===//
#include "swift/Basic/DiagnosticConsumer.h"
#include "swift/Parse/Lexer.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
@@ -24,18 +23,6 @@ using namespace swift;
DiagnosticConsumer::~DiagnosticConsumer() { }
llvm::SMRange DiagnosticConsumer::getRawRange(SourceManager &SM,
DiagnosticInfo::Range R) {
SourceLoc End;
if (R.IsTokenRange)
End = Lexer::getLocForEndOfToken(SM, R.End);
else
End = R.End;
return llvm::SMRange(getRawLoc(R.Start), getRawLoc(End));
}
void NullDiagnosticConsumer::handleDiagnostic(SourceManager &SM,
SourceLoc Loc,
DiagnosticKind Kind,