Списки инициализации не имеют доступа для чтения к переменным экземпляра.
В простом примере, подобном приведенному вами, вы можете просто использовать passed * 10
вместо b
Для однако для более сложных вычислений вы можете перейти к конструктору фабрики
class A {
final int a;
A(this.a);
}
class B extends A {
final int b;
factory B(int passed){
var calculated;
// some complicated calculation
calculated= passed * 10;
return B._(passed, calculated);
}
B._(int passed, int calculated)
: b = passed,
super(calculated);
}
main() {
var b = B(2);
print (b.a);
}
При желании вы можете сохранить интерфейс класса в чистоте, сделав конструктор по умолчанию закрытым, как я здесь.