Is it "compile-time injection" possible? I was thinking on the ability to attribute for example a class with members that are defined outside that class, and the compiler will just accept them.

ie: type [Extend(TFooExtender)] TFoo=class end;
TFooExtender=class(TBaseExtender).... end;
TBar=record Num:Integer end;

To allow this at compile-time:

var foo : TFoo; foo.Bar.num:=42;

TFooExtender will return 'Bar' of type TBar as a valid member of TFoo, and the compiler will just accept it.

At runtime, TFooExtender is the one that "glues" foo and bar, so it will run just fine.

Shared publiclyView activity