minor tweaks

llvm-svn: 43515
This commit is contained in:
Chris Lattner 2007-10-30 20:57:56 +00:00
parent f5bda316c5
commit 0b11172e8c
2 changed files with 13 additions and 12 deletions

View File

@ -31,17 +31,18 @@ void Sema::ActOnTranslationUnitScope(SourceLocation Loc, Scope *S) {
/// For now, we will *not* install id as a built-in. FIXME: reconsider this.
QualType Sema::GetObjcIdType(SourceLocation Loc) {
assert(TUScope && "GetObjcIdType(): Top-level scope is null");
if (Context.getObjcIdType().isNull()) {
IdentifierInfo *IdIdent = &Context.Idents.get("id");
ScopedDecl *IdDecl = LookupScopedDecl(IdIdent, Decl::IDNS_Ordinary,
SourceLocation(), TUScope);
TypedefDecl *ObjcIdTypedef = dyn_cast_or_null<TypedefDecl>(IdDecl);
if (!ObjcIdTypedef) {
Diag(Loc, diag::err_missing_id_definition);
return QualType();
}
Context.setObjcIdType(ObjcIdTypedef);
if (!Context.getObjcIdType().isNull())
return Context.getObjcIdType();
IdentifierInfo *IdIdent = &Context.Idents.get("id");
ScopedDecl *IdDecl = LookupScopedDecl(IdIdent, Decl::IDNS_Ordinary,
SourceLocation(), TUScope);
TypedefDecl *ObjcIdTypedef = dyn_cast_or_null<TypedefDecl>(IdDecl);
if (!ObjcIdTypedef) {
Diag(Loc, diag::err_missing_id_definition);
return QualType();
}
Context.setObjcIdType(ObjcIdTypedef);
return Context.getObjcIdType();
}

View File

@ -1194,9 +1194,9 @@ Sema::DeclTy *Sema::ActOnStartCategoryImplementation(
if (!IDecl || IDecl->isForwardDecl())
Diag(ClassLoc, diag::err_undef_interface, ClassName->getName());
// We cannot build type 'id' laziliy. It is needed when checking if a
// We cannot build type 'id' lazily. It is needed when checking if a
// type is an 'id' (via call to isObjcIdType) even if there is no
// need for the dafult 'id' type.
// need for the default 'id' type.
// FIXME: Depending on the need to compare to 'id', this may have to go
// somewhere else. At this time, this is a good enough place to do type
// encoding of methods and ivars for the rewrite client.