d16118c4d1
Closes #51861 Change-Id: I5681bdf8198c676599daca79910b066fa18c283b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/291541 Commit-Queue: Johnni Winther <johnniwinther@google.com> Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
95 lines
6.0 KiB
Plaintext
95 lines
6.0 KiB
Plaintext
library /*isNonNullableByDefault*/;
|
|
//
|
|
// Problems in library:
|
|
//
|
|
// pkg/front_end/testcases/patterns/pattern_assignment_final.dart:31:4: Error: Can't assign to the final variable 'initializedFinal'.
|
|
// (initializedFinal, // Error
|
|
// ^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/patterns/pattern_assignment_final.dart:32:7: Error: Late final variable 'initializedLateFinal' definitely assigned.
|
|
// initializedLateFinal, // Error
|
|
// ^^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/patterns/pattern_assignment_final.dart:35:5: Error: Final variable 'definitelyAssignedFinal' might already be assigned at this point.
|
|
// definitelyAssignedFinal] = y; // Error
|
|
// ^^^^^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/patterns/pattern_assignment_final.dart:36:17: Error: Late final variable 'definitelyAssignedLateFinal' definitely assigned.
|
|
// Class(field1: definitelyAssignedLateFinal, // Error
|
|
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
// pkg/front_end/testcases/patterns/pattern_assignment_final.dart:37:17: Error: Final variable 'notDefinitelyAssignedFinal' might already be assigned at this point.
|
|
// field2: [[notDefinitelyAssignedFinal, _], // Error
|
|
// ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
//
|
|
import self as self;
|
|
import "dart:core" as core;
|
|
|
|
class Class extends core::Object {
|
|
field dynamic field1 = null;
|
|
field dynamic field2 = null;
|
|
synthetic constructor •() → self::Class
|
|
: super core::Object::•()
|
|
;
|
|
}
|
|
static method method(dynamic x, dynamic y, dynamic z) → dynamic {
|
|
final core::int initializedFinal = 5;
|
|
late final core::int initializedLateFinal = 5;
|
|
final dynamic definitelyUnassignedFinal;
|
|
late final core::int definitelyUnassignedLateFinal;
|
|
final dynamic definitelyAssignedFinal;
|
|
late final dynamic definitelyAssignedLateFinal;
|
|
final core::int notDefinitelyAssignedFinal;
|
|
late final core::int notDefinitelyAssignedLateFinal;
|
|
if(x =={core::Object::==}{(core::Object) → core::bool} 5) {
|
|
notDefinitelyAssignedFinal = 5;
|
|
notDefinitelyAssignedLateFinal = 15;
|
|
}
|
|
definitelyAssignedFinal = 10;
|
|
definitelyAssignedLateFinal = 20;
|
|
block {
|
|
dynamic #t1;
|
|
final synthesized dynamic #0#0 = x as{TypeError,ForDynamic,ForNonNullableByDefault} (core::int, core::int, dynamic);
|
|
if(!(#0#0 is{ForNonNullableByDefault} (core::Object?, core::Object?, core::Object?) && invalid-expression "pkg/front_end/testcases/patterns/pattern_assignment_final.dart:31:4: Error: Can't assign to the final variable 'initializedFinal'.
|
|
(initializedFinal, // Error
|
|
^^^^^^^^^^^^^^^^" && invalid-expression "pkg/front_end/testcases/patterns/pattern_assignment_final.dart:32:7: Error: Late final variable 'initializedLateFinal' definitely assigned.
|
|
initializedLateFinal, // Error
|
|
^^^^^^^^^^^^^^^^^^^^" && (let final core::Object? #t2 = #t1 = #0#0{(core::Object?, core::Object?, core::Object?)}.$3{core::Object?} in true)))
|
|
throw new core::StateError::•("Pattern matching error");
|
|
definitelyUnassignedFinal = #t1;
|
|
} =>#0#0;
|
|
block {
|
|
core::int #t3;
|
|
final synthesized dynamic #1#0 = y as{TypeError,ForDynamic,ForNonNullableByDefault} core::List<core::int>;
|
|
if(!(#1#0 is{ForNonNullableByDefault} core::List<dynamic> && #1#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && (let final core::int #t4 = #t3 = #1#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic} as{ForNonNullableByDefault} core::int in true) && invalid-expression "pkg/front_end/testcases/patterns/pattern_assignment_final.dart:35:5: Error: Final variable 'definitelyAssignedFinal' might already be assigned at this point.
|
|
definitelyAssignedFinal] = y; // Error
|
|
^^^^^^^^^^^^^^^^^^^^^^^"))
|
|
throw new core::StateError::•("Pattern matching error");
|
|
definitelyUnassignedLateFinal = #t3;
|
|
} =>#1#0;
|
|
block {
|
|
core::int #t5;
|
|
final synthesized dynamic #2#0 = z as{TypeError,ForDynamic,ForNonNullableByDefault} self::Class;
|
|
function ##2#3#initializer() → dynamic
|
|
return #2#0{self::Class}.{self::Class::field2}{dynamic};
|
|
late final synthesized dynamic #2#3 = ##2#3#initializer(){() → dynamic};
|
|
function ##2#9#initializer() → dynamic
|
|
return #2#3{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic};
|
|
late final synthesized dynamic #2#9 = ##2#9#initializer(){() → dynamic};
|
|
function ##2#16#initializer() → dynamic
|
|
return #2#3{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic};
|
|
late final synthesized dynamic #2#16 = ##2#16#initializer(){() → dynamic};
|
|
if(!(#2#0 is{ForNonNullableByDefault} self::Class && (let final dynamic #t6 = #2#0{self::Class}.{self::Class::field1}{dynamic} in invalid-expression "pkg/front_end/testcases/patterns/pattern_assignment_final.dart:36:17: Error: Late final variable 'definitelyAssignedLateFinal' definitely assigned.
|
|
Class(field1: definitelyAssignedLateFinal, // Error
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^") && (#2#3 is{ForNonNullableByDefault} core::List<dynamic> && #2#3{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && (#2#9 is{ForNonNullableByDefault} core::List<dynamic> && #2#9{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && invalid-expression "pkg/front_end/testcases/patterns/pattern_assignment_final.dart:37:17: Error: Final variable 'notDefinitelyAssignedFinal' might already be assigned at this point.
|
|
field2: [[notDefinitelyAssignedFinal, _], // Error
|
|
^^^^^^^^^^^^^^^^^^^^^^^^^^") && (#2#16 is{ForNonNullableByDefault} core::List<dynamic> && #2#16{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C1 && (let final core::int #t7 = #t5 = #2#16{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic} as{ForNonNullableByDefault} core::int in true)))))
|
|
throw new core::StateError::•("Pattern matching error");
|
|
notDefinitelyAssignedLateFinal = #t5;
|
|
} =>#2#0;
|
|
}
|
|
|
|
constants {
|
|
#C1 = 2
|
|
}
|