| library /*isNonNullableByDefault*/; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:24:3: Error: Operator 'unary-' cannot be called on 'int?' because it is potentially null. |
| // -nullableInt; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:25:15: Error: Operator '+' cannot be called on 'int?' because it is potentially null. |
| // nullableInt + 2; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:26:16: Error: Operator '[]' cannot be called on 'Class?' because it is potentially null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // nullableClass[nonNullableInt]; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:27:16: Error: Operator '[]=' cannot be called on 'Class?' because it is potentially null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // nullableClass[nonNullableInt] = nonNullableInt; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:28:16: Error: Operator '[]' cannot be called on 'Class?' because it is potentially null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // nullableClass[nonNullableInt] += nonNullableInt; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:28:16: Error: Operator '[]=' cannot be called on 'Class?' because it is potentially null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // nullableClass[nonNullableInt] += nonNullableInt; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:29:29: Error: Operator '[]' cannot be called on 'NullableIndexClass?' because it is potentially null. |
| // - 'NullableIndexClass' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // nullableNullableIndexClass[nonNullableInt] ??= nonNullableInt; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:29:29: Error: Operator '[]=' cannot be called on 'NullableIndexClass?' because it is potentially null. |
| // - 'NullableIndexClass' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // nullableNullableIndexClass[nonNullableInt] ??= nonNullableInt; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:37:17: Error: Property 'nonNullableField' cannot be accessed on 'Class?' because it is potentially null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // Try accessing using ?. instead. |
| // nullableClass.nonNullableField; // error |
| // ^^^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:38:17: Error: Property 'nonNullableField' cannot be accessed on 'Class?' because it is potentially null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // Try accessing using ?. instead. |
| // nullableClass.nonNullableField = 2; // error |
| // ^^^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:39:17: Error: Property 'nonNullableField' cannot be accessed on 'Class?' because it is potentially null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // Try accessing using ?. instead. |
| // nullableClass.nonNullableField += 2; // error |
| // ^^^^^^^^^^^^^^^^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:48:34: Error: Operator '+' cannot be called on 'int?' because it is potentially null. |
| // nonNullableClass.nullableField += 2; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:48:34: Error: A value of type 'num' can't be assigned to a variable of type 'int?'. |
| // nonNullableClass.nullableField += 2; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:49:32: Error: Operator '+' cannot be called on 'int?' because it is potentially null. |
| // nullableClass?.nullableField += 2; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:49:32: Error: A value of type 'num' can't be assigned to a variable of type 'int?'. |
| // nullableClass?.nullableField += 2; // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:54:35: Warning: Operand of null-aware operation '??=' has type 'int' which excludes null. |
| // nullableClass?.nonNullableClass.nonNullableField ??= 0; // ok |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:57:16: Error: Can't use an expression of type 'Class?' as a function because it's potentially null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // Try calling using ?.call instead. |
| // nullableClass(); // error |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:59:3: Warning: Operand of null-aware operation '?.' has type 'Class' which excludes null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // nonNullableClass?.nonNullableClass(); // ok |
| // ^ |
| // |
| // pkg/front_end/testcases/nnbd/null_access.dart:60:3: Warning: Operand of null-aware operation '?.' has type 'Class' which excludes null. |
| // - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| // nonNullableClass?.nonNullableClass.nonNullableClass(); // ok |
| // ^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| class Class extends core::Object { |
| field core::int nonNullableField = 0; |
| field core::int? nullableField = null; |
| synthetic constructor •() → self::Class |
| : super core::Object::•() |
| ; |
| operator [](core::int key) → core::int |
| return key; |
| operator []=(core::int key, core::int value) → void {} |
| get nonNullableClass() → self::Class |
| return this; |
| method call() → self::Class |
| return this; |
| get nonNullableNullableIndexClass() → self::NullableIndexClass |
| return new self::NullableIndexClass::•(); |
| } |
| class NullableIndexClass extends core::Object { |
| synthetic constructor •() → self::NullableIndexClass |
| : super core::Object::•() |
| ; |
| operator [](core::int key) → core::int? |
| return key; |
| operator []=(core::int key, core::int value) → void {} |
| } |
| static method main() → dynamic {} |
| static method errors(self::Class? nullableClass, self::Class nonNullableClass, core::int? nullableInt, core::int nonNullableInt, self::NullableIndexClass? nullableNullableIndexClass) → dynamic { |
| invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:24:3: Error: Operator 'unary-' cannot be called on 'int?' because it is potentially null. |
| -nullableInt; // error |
| ^" in nullableInt.{core::int::unary-}(){() → core::int}; |
| invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:25:15: Error: Operator '+' cannot be called on 'int?' because it is potentially null. |
| nullableInt + 2; // error |
| ^" in nullableInt.{core::num::+}(2){(core::num) → core::num}; |
| invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:26:16: Error: Operator '[]' cannot be called on 'Class?' because it is potentially null. |
| - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| nullableClass[nonNullableInt]; // error |
| ^" in nullableClass.{self::Class::[]}{<nullable>}.(nonNullableInt){(core::int) → core::int}; |
| invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:27:16: Error: Operator '[]=' cannot be called on 'Class?' because it is potentially null. |
| - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| nullableClass[nonNullableInt] = nonNullableInt; // error |
| ^" in nullableClass.{self::Class::[]=}{<nullable>}.(nonNullableInt, nonNullableInt){(core::int, core::int) → void}; |
| let final self::Class? #t1 = nullableClass in let final core::int #t2 = nonNullableInt in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:28:16: Error: Operator '[]=' cannot be called on 'Class?' because it is potentially null. |
| - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| nullableClass[nonNullableInt] += nonNullableInt; // error |
| ^" in #t1.{self::Class::[]=}{<nullable>}.(#t2, invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:28:16: Error: Operator '[]' cannot be called on 'Class?' because it is potentially null. |
| - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| nullableClass[nonNullableInt] += nonNullableInt; // error |
| ^" in #t1.{self::Class::[]}{<nullable>}.(#t2){(core::int) → core::int}.{core::num::+}(nonNullableInt){(core::num) → core::int}){(core::int, core::int) → void}; |
| let final self::NullableIndexClass? #t3 = nullableNullableIndexClass in let final core::int #t4 = nonNullableInt in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:29:29: Error: Operator '[]' cannot be called on 'NullableIndexClass?' because it is potentially null. |
| - 'NullableIndexClass' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| nullableNullableIndexClass[nonNullableInt] ??= nonNullableInt; // error |
| ^" in #t3.{self::NullableIndexClass::[]}{<nullable>}.(#t4){(core::int) → core::int?} == null ?{core::int} invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:29:29: Error: Operator '[]=' cannot be called on 'NullableIndexClass?' because it is potentially null. |
| - 'NullableIndexClass' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| nullableNullableIndexClass[nonNullableInt] ??= nonNullableInt; // error |
| ^" in #t3.{self::NullableIndexClass::[]=}{<nullable>}.(#t4, nonNullableInt){(core::int, core::int) → void} : null; |
| let final self::Class? #t5 = nullableClass in #t5 == null ?{core::int?} null : #t5{self::Class}.{self::Class::nonNullableClass}{self::Class}.{self::Class::[]}(nonNullableInt){(core::int) → core::int}; |
| let final self::Class? #t6 = nullableClass in #t6 == null ?{core::int?} null : #t6{self::Class}.{self::Class::nonNullableClass}{self::Class}.{self::Class::[]=}(nonNullableInt, nonNullableInt){(core::int, core::int) → void}; |
| let final self::Class? #t7 = nullableClass in #t7 == null ?{core::int?} null : let final self::Class #t8 = #t7{self::Class}.{self::Class::nonNullableClass}{self::Class} in let final core::int #t9 = nonNullableInt in #t8.{self::Class::[]=}(#t9, #t8.{self::Class::[]}(#t9){(core::int) → core::int}.{core::num::+}(nonNullableInt){(core::num) → core::int}){(core::int, core::int) → void}; |
| let final self::Class? #t10 = nullableClass in #t10 == null ?{core::int?} null : let final self::NullableIndexClass #t11 = #t10{self::Class}.{self::Class::nonNullableNullableIndexClass}{self::NullableIndexClass} in let final core::int #t12 = nonNullableInt in #t11.{self::NullableIndexClass::[]}(#t12){(core::int) → core::int?} == null ?{core::int} #t11.{self::NullableIndexClass::[]=}(#t12, nonNullableInt){(core::int, core::int) → void} : null; |
| invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:37:17: Error: Property 'nonNullableField' cannot be accessed on 'Class?' because it is potentially null. |
| - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| Try accessing using ?. instead. |
| nullableClass.nonNullableField; // error |
| ^^^^^^^^^^^^^^^^" in nullableClass.{self::Class::nonNullableField}{<nullable>}.{core::int}; |
| invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:38:17: Error: Property 'nonNullableField' cannot be accessed on 'Class?' because it is potentially null. |
| - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| Try accessing using ?. instead. |
| nullableClass.nonNullableField = 2; // error |
| ^^^^^^^^^^^^^^^^" in nullableClass.{self::Class::nonNullableField}{<nullable>}. = 2; |
| let final self::Class? #t13 = nullableClass in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:39:17: Error: Property 'nonNullableField' cannot be accessed on 'Class?' because it is potentially null. |
| - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| Try accessing using ?. instead. |
| nullableClass.nonNullableField += 2; // error |
| ^^^^^^^^^^^^^^^^" in #t13.{self::Class::nonNullableField}{<nullable>}. = invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:39:17: Error: Property 'nonNullableField' cannot be accessed on 'Class?' because it is potentially null. |
| - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| Try accessing using ?. instead. |
| nullableClass.nonNullableField += 2; // error |
| ^^^^^^^^^^^^^^^^" in #t13.{self::Class::nonNullableField}{<nullable>}.{core::int}.{core::num::+}(2){(core::num) → core::int}; |
| let final self::Class? #t14 = nullableClass in #t14 == null ?{core::int?} null : #t14{self::Class}.{self::Class::nonNullableField}{core::int}; |
| let final self::Class? #t15 = nullableClass in #t15 == null ?{core::int?} null : #t15{self::Class}.{self::Class::nonNullableField} = 2; |
| let final self::Class? #t16 = nullableClass in #t16 == null ?{core::int?} null : #t16.{self::Class::nonNullableField} = #t16.{self::Class::nonNullableField}{core::int}.{core::num::+}(2){(core::num) → core::int}; |
| let final self::Class? #t17 = nullableClass in #t17 == null ?{core::int?} null : #t17{self::Class}.{self::Class::nonNullableClass}{self::Class}.{self::Class::nonNullableField}{core::int}; |
| let final self::Class? #t18 = nullableClass in #t18 == null ?{core::int?} null : #t18{self::Class}.{self::Class::nonNullableClass}{self::Class}.{self::Class::nonNullableField} = 2; |
| let final self::Class #t19 = nonNullableClass in #t19.{self::Class::nullableField} = invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:48:34: Error: A value of type 'num' can't be assigned to a variable of type 'int?'. |
| nonNullableClass.nullableField += 2; // error |
| ^" in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:48:34: Error: Operator '+' cannot be called on 'int?' because it is potentially null. |
| nonNullableClass.nullableField += 2; // error |
| ^" in #t19.{self::Class::nullableField}{core::int?}.{core::num::+}(2){(core::num) → core::num} as{TypeError,ForNonNullableByDefault} core::int?; |
| let final self::Class? #t20 = nullableClass in #t20 == null ?{core::num?} null : #t20.{self::Class::nullableField} = invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:49:32: Error: A value of type 'num' can't be assigned to a variable of type 'int?'. |
| nullableClass?.nullableField += 2; // error |
| ^" in invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:49:32: Error: Operator '+' cannot be called on 'int?' because it is potentially null. |
| nullableClass?.nullableField += 2; // error |
| ^" in #t20.{self::Class::nullableField}{core::int?}.{core::num::+}(2){(core::num) → core::num} as{TypeError,ForNonNullableByDefault} core::int?; |
| let final self::Class? #t21 = nullableClass in #t21 == null ?{core::int?} null : #t21.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t21.{self::Class::nonNullableField} = 0 : null; |
| let final self::Class? #t22 = nullableClass in #t22 == null ?{core::int?} null : #t22.{self::Class::nullableField}{core::int?} == null ?{core::int} #t22.{self::Class::nullableField} = 0 : null; |
| let final self::Class? #t23 = nullableClass in #t23 == null ?{core::int?} null : let final self::Class #t24 = #t23{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t24.{self::Class::nonNullableField}{core::int} == null ?{core::int} #t24.{self::Class::nonNullableField} = 0 : null; |
| let final self::Class? #t25 = nullableClass in #t25 == null ?{core::int?} null : let final self::Class #t26 = #t25{self::Class}.{self::Class::nonNullableClass}{self::Class} in #t26.{self::Class::nullableField}{core::int?} == null ?{core::int} #t26.{self::Class::nullableField} = 0 : null; |
| invalid-expression "pkg/front_end/testcases/nnbd/null_access.dart:57:16: Error: Can't use an expression of type 'Class?' as a function because it's potentially null. |
| - 'Class' is from 'pkg/front_end/testcases/nnbd/null_access.dart'. |
| Try calling using ?.call instead. |
| nullableClass(); // error |
| ^" in nullableClass.{self::Class::call}{<nullable>}.(){() → self::Class}; |
| nonNullableClass.{self::Class::call}(){() → self::Class}; |
| let final self::Class #t27 = nonNullableClass in #t27 == null ?{self::Class?} null : #t27.{self::Class::nonNullableClass}{self::Class}.{self::Class::call}(){() → self::Class}; |
| let final self::Class #t28 = nonNullableClass in #t28 == null ?{self::Class?} null : #t28.{self::Class::nonNullableClass}{self::Class}.{self::Class::nonNullableClass}{self::Class}.{self::Class::call}(){() → self::Class}; |
| } |