[PATCH] __interface support (with isVirtual fix)

Updated patch attached; patch also updated to be against current
revision (162644 at time of writing). All tests pass.

It removes the call to setVirtualAsWritten and instead, as suggested by
John McCall, modifies CXXMethodDecl::isVirtual to return true if either
virtual as written is set or the method is declared in an interface.

(As I noted before, I do not have commit access so if approved I will
need someone else to commit this change.)

__interface.patch (44.9 KB)

Looks good to me.

Minor nitpick:

bool Type::isStructureOrClassType() const;

Should we rename this since now it also checks for interfaces?

By the way, patch submissions should be sent to cfe-commits instead.

I think the name works as-is - an interface is a class/structure type
(of the family).

I'll send it on to cfe-commits - I didn't know that was for uncommited
patches too.