This is not possible by design.
    
    
    type
      test* = object
    

Here, you declare an object that has no fields.
    
    
    var t = test()
    

Here, you instantiate this object. `t` has the type `test`.
    
    
    var t.name = "kek"
    

The compiler now looks at `t`'s type and sees that this type has no field 
`name`, and thus quits with an error at compile time. If you want to allow 
that, that means that every construct `t.someFieldName` would not be allowed to 
fail at compile time (because that field may be added dynamically). So the 
compiler can no longer guarantee that the field you try to access exists. 
That's the difference between static and dynamic typing systems.

The question is: Why do you think you need it?

Reply via email to