//#include @interface TheMethod -(double)quux; +(double)quux; @end @interface NormalClass @end @class ForwardClass; @protocol NormalProtocol @end @protocol ForwardProtocol; typedef void *id; NormalClass *normalClass; ForwardClass *forwardClass; id normalProtocol; id forwardProtocol; NormalClass *n_n; ForwardClass *f_f; ForwardClass *f_n; NormalClass *n_f; int main(int argc, char **argv) { double d; /* with objc/Object.h: 3.4 3.2 3.0.1 2.95.2 without objc/Object.h: 3.4 3.2 3.0.1 2.95.2 */ d=[NormalClass quux]; // x x x x x x x x d=[ForwardClass quux]; // x x x x x x d=[normalClass quux]; // x x x x x x x x d=[forwardClass quux]; // x x x x x x x x d=[normalProtocol quux]; // x x d=[forwardProtocol quux];// x na na x na na d=[n_n quux]; // x x x x x x x x d=[f_n quux]; // x x x x x x x x d=[n_f quux]; // x x na na x x na na d=[f_f quux]; // x x na na x x na na return 0; }