blob: 034787a74a285284e3adf49533db4d21e30a5f69 [file] [log] [blame]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Make sure first and last selectors properly update types.
/*member: testUnchangedFirst:[null|powerset=1]*/
void testUnchangedFirst(
/*Value([exact=JSBool|powerset=0], value: true, powerset: 0)*/ x,
) {}
/*member: testFirst1:[null|powerset=1]*/
void testFirst1(/*[exact=JSBool|powerset=0]*/ x) {}
/*member: testFirst2:[null|powerset=1]*/
void testFirst2(/*[exact=JSBool|powerset=0]*/ x) {}
/*member: testUnchangedLast:[null|powerset=1]*/
void testUnchangedLast(
/*Value([exact=JSBool|powerset=0], value: true, powerset: 0)*/ x,
) {}
/*member: testLast1:[null|powerset=1]*/
void testLast1(/*[exact=JSBool|powerset=0]*/ x) {}
/*member: testLast2:[null|powerset=1]*/
void testLast2(/*[exact=JSBool|powerset=0]*/ x) {}
/*member: main:[null|powerset=1]*/
main() {
final List<Object> x = [true, true];
testFirst1(
x. /*Container([exact=JSExtendableArray|powerset=0], element: [exact=JSBool|powerset=0], length: 2, powerset: 0)*/ first,
);
x. /*update: Container([exact=JSExtendableArray|powerset=0], element: [exact=JSBool|powerset=0], length: 2, powerset: 0)*/ first =
false;
testFirst2(
x. /*Container([exact=JSExtendableArray|powerset=0], element: [exact=JSBool|powerset=0], length: 2, powerset: 0)*/ first,
);
final List<Object> y = [true, true];
testLast1(
y. /*Container([exact=JSExtendableArray|powerset=0], element: [exact=JSBool|powerset=0], length: 2, powerset: 0)*/ first,
);
y. /*update: Container([exact=JSExtendableArray|powerset=0], element: [exact=JSBool|powerset=0], length: 2, powerset: 0)*/ last =
false;
testLast2(
y. /*Container([exact=JSExtendableArray|powerset=0], element: [exact=JSBool|powerset=0], length: 2, powerset: 0)*/ first,
);
final List<Object> z = [true, true];
testUnchangedFirst(
z. /*Container([exact=JSExtendableArray|powerset=0], element: Value([exact=JSBool|powerset=0], value: true, powerset: 0), length: 2, powerset: 0)*/ first,
);
testUnchangedLast(
z. /*Container([exact=JSExtendableArray|powerset=0], element: Value([exact=JSBool|powerset=0], value: true, powerset: 0), length: 2, powerset: 0)*/ last,
);
}