BCS wrote:
Hello Ellery,
Tee hee. I can make the compiler swallow something silly:
module silly;
interface I{
void foo();
}
class C: public private protected package protected public protected
public private protected package I{
void foo(){}
}
void main(){}
Um. OK. It turns out it's easier to make the compiler eat that than it
is to make it reject it. Also sometimes it's handy to have it look at
only the last cases (I think that's what it does). As an example, in
generated code. Another example of this is in unix command line apps
that often have on/off flag pairs that can be mixed ad-nauseum because
they grab flags from several different sources that need to override
each other.
I don't buy that. Not that I'm a C guru or anything, but it looks to me
that Parser::BaseClasses could be easily edited to make the point in
question go away.
Also, I don't quite follow your rationale, but I'll accept it just the
same. I like this feature :D