>I agree the code becames incorrect if add constructor to b and the code uses generated constructor.
>But Boo gives message about it.
Boo has no way to give a message if the class b is used by another assembly.
Think class b is in a library used by third-parties (moreover possibly in another .NET language).
>Default behavior( generation for no constructor class) is logic.
Logic, in someway I agree. Obvious, it isn't (especially if you comes from most other languages C#, Java, C++ included ).
>And usefull for several real cases.
I agree, it would save a little typing, but I don't think it deserves the term "useful" because it's really no more than a shortcut to not write the constructors "stubs". Probably "handy" is more appropriate if there would be no drawbacks doing it this way.
And the typing advantage would completely go away when you need to add another constructor (then you'll have to write the constructors stubs anyways).
>I said If you change parameter list for function using it code becomes incorrect.
>But we don't worry about it. This situation is similar to it.
When you change the parameter list of a method it is obvious that you break the API.
Something similar would be that when you add a new method it breaks the API, which is absolutely not obvious and would be something to worry
I think a better solution here would be to have a AST attribute [InheritBaseConstructors] to explicitly say you want to inherit classes, since doing it implicitly would cause the problem demonstrated above. It still saves a lot of typing AND has the added advantage that you can use it even if your class b do have specific constructors