- Make sure default return/argument types (for methods) default to "id".
- Cache the "id" type in Sema...initialize ObjcIdType and TUScope (oops).
- Fix ActOnInstanceMessage to allow for "id" type receivers...still work to do (next).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42842 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/Sema.h b/Sema/Sema.h
index b1f1dcd..0ac513e 100644
--- a/Sema/Sema.h
+++ b/Sema/Sema.h
@@ -19,6 +19,7 @@
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/SmallPtrSet.h"
+#include "clang/AST/Type.h"
#include <vector>
#include <string>
@@ -117,6 +118,9 @@
/// to lookup file scope declarations in the "ordinary" C decl namespace.
/// For example, user-defined classes, built-in "id" type, etc.
Scope *TUScope;
+
+ /// ObjcIdType - built-in type for "id".
+ QualType ObjcIdType;
public:
Sema(Preprocessor &pp, ASTContext &ctxt, std::vector<Decl*> &prevInGroup);
@@ -251,6 +255,9 @@
/// true, or false, accordingly.
bool MatchTwoMethodDeclarations(const ObjcMethodDecl *Method,
const ObjcMethodDecl *PrevMethod);
+
+ /// GetObjcIdType - Getter for the build-in "id" type.
+ QualType GetObjcIdType();
//===--------------------------------------------------------------------===//
// Statement Parsing Callbacks: SemaStmt.cpp.