| // Copyright (c) 2011, 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. |
| // Check that const objects (including literals) are immutable. |
| |
| // @dart = 2.9 |
| |
| import "package:expect/expect.dart"; |
| |
| class A { |
| const A(this.x, this.y); |
| final num x, y; |
| } |
| |
| main() { |
| dynamic list = const [1, 2]; |
| Expect.throws(() => list[0] = 3); |
| Expect.equals(1, list[0]); |
| |
| dynamic m = const {'foo': 499}; |
| Expect.throws(() => m['foo'] = 42); |
| Expect.equals(499, m['foo']); |
| |
| dynamic a1 = const A(1, 2); |
| Expect.throws(() => a1.x = 499); |
| Expect.equals(1, a1.x); |
| |
| dynamic a2 = const A(1, 2); |
| Expect.throws(() => a2.x = 499); |
| Expect.equals(1, a2.x); |
| } |