Hey guys!
I am playing with nullsafety.dartpad.dev and found something that is really annoying. I know the feature for NNBD isn't ready yet, but this is really intended?
void main() {
int? value = 0;
print(value?.doubleAsString() ?? "empty");
}
extension on int {
String doubleAsString() => "${this + this}";
}
Gives error:

Is this really intended? Will this not break all the extensions feature?
Thinking on a real world development this is definetly a problem, since we having a lot of libraries out there based on extensions already (like https://github.com/leisim/dartx) that will stop serving its purpose once we have the NNBD feature released and breaking it...
This should work.
The e?.method() should work the same as (tmp = e) == null ? null : tmp.method() where tmp has the same type as the static type of e, and that type should get promoted so that tmp.method is called on the promoted type.
Moving this to the SDK repository as a bug against the analyzer.
cc @scheglov @stereotype441 @johnniwinther