It seems something is wrong with such important part of new class system as "config" declaration.

1) Somewhere on forum was information about proper usage of "config" option in class definition.
"config" option in define() must be used only to create "new" config properties. If you define class which "extend" another class with properties already exists,you don't have to specify it in "config" section.
Something like:
Code:
Ext.define('my.view.XForm', {
    extend:'Ext.form.Panel',
    loader:{
       url:'test',
       baseParams:{a:'b'}
    },
...
is enough-"loader" already defined upper in the hierarchy.Or is it?

But if you want to redefine "default" value for "config" property,then that do you need to do?
Hot to change only "url" or "baseParams" leaving rest of declaration intact?

I've heard about "deeply merge" functionality for "config" preprocessor,but it only work if "config" option declared in "define()"-it looks for "config" property to make it's work(invoke addConfig()).
So,if I define "loader" option directly,not enclosed in "config", it wouldn't be handled as "config" property, but as simple "field" member. That's not correct IMHO.

If you declare something as "config" property earlier, it's natural to expect it to be handled that way in derived class. So, "config" preprocessor must lookup already defined "config" properties,search them in new"extend" class definition and treat them as same type of property-execute deep merge,for example.
I mean,it's not become simple "field"-it declares default value for existent "config" property.
Now it's not work this way. To trigger preprocessor to see properties as "config" you must declare "config" option in define(), even though it maybe be already defined on level above as "config" property.

2) OK. let's define every customizable property as "config" to get needed functionality-deep merge.
Code:
Ext.define('my.view.XForm', {
    extend:'Ext.form.Panel',
config:{
    loader:{
       url:'test',
       baseParams:{a:'b'}
    }
},
...
Ext.define('qqq', {
    extend:'my.view.XForm',
config:{
    loader:{
       baseParams:{a:'c'}
    }
},
...
but this will not work too...

'qqq's prototype.loader contains something called objectClass which in turn contains old declared "url" and "baseParams" AND separate new "merged" baseParams property,something like
Code:
objectClass{
  properties:{
     url:'test',
    baseParams:{a:'b'}
  },
  baseParams:{a:'c'}
}
Ext.create('qqq') can't figure out what to do with such mix and as result you never see correct loader
Code:
loader:{
     url:'test',
     baseParams:{a:'c'}
}
so,as you can understand "merge" functionality is not correctly handled too.

3) What about promised setLoader()/getLoader() accessors for loader "config" type property? There's nowhere in sight,though 'loader' declared as 'config' property.

Thanks.