On Tuesday, 16 July 2013 at 09:47:35 UTC, Regan Heath wrote:
clip
We have class invariants.. these define the things which must
be initialised to reach a valid state. If we had compiler
recognisable properties as well, then we could have an
initialise construct like..
class Foo
{
string name;
int age;
invariant
{
assert(name != null);
assert(age > 0);
}
property string Name...
property int Age...
}
void main()
{
Foo f = new Foo() {
Name = "test", // calls property Name setter
Age = 12 // calls property Age setter
};
}
The compiler could statically verify that the variables tested
in the invariant (name, age) were set (by setter properies)
inside the initialise construct {} following the new Foo().
R
How do you envision this working where Name or Age must be set to
a value not known at compile time?