improve redefinition diagnostics since all type aliases are definitions, not declarations.

Swift SVN r1067
This commit is contained in:
Chris Lattner
2012-01-18 06:52:15 +00:00
parent ea5e37e276
commit cb80e127a6
3 changed files with 34 additions and 2 deletions

View File

@@ -39,8 +39,8 @@ Scope::Scope(Parser *P) : SI(P->ScopeInfo), ValueHTScope(SI.ValueScopeHT),
static void diagnoseRedefinition(ValueDecl *Prev, ValueDecl *New, Parser &P) {
assert(New != Prev && "Cannot conflict with self");
P.diagnose(New->getLocStart(), diag::decl_redefinition, New->getInit() != 0);
P.diagnose(Prev->getLocStart(), diag::previous_decldef, Prev->getInit() != 0,
P.diagnose(New->getLocStart(), diag::decl_redefinition, New->isDefinition());
P.diagnose(Prev->getLocStart(), diag::previous_decldef, Prev->isDefinition(),
Prev->getName());
}