main(){
String? string1;
String? string2;
String string3;
if(string1!=null)
string3=string1; // No Error
}
But
main(){
String? string1;
String? string2;
String string3;
if(string2!=null && string1==string2)
string3=string1; // Error !
}
I am unable to understand the logic behind this. I think this has something to do with the dart compiler.