Files
sdk/tests/compiler/dart2js/optimization/data/index_assign.dart
T
Johnni Winther e4b809f0e6 Add unit testing of (some) invoke dynamic specializers
Change-Id: I7c3b100da899050a7eb234d53a70d235b3186675
Reviewed-on: https://dart-review.googlesource.com/c/91829
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-02-04 10:24:03 +00:00

71 lines
2.2 KiB
Dart

// Copyright (c) 2019, 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.
/*element: dynamicIndexAssign:Specializer=[!IndexAssign]*/
@pragma('dart2js:noInline')
dynamicIndexAssign(var list) {
list[0] = 1;
}
/*strong.element: unknownListIndexAssign:Specializer=[!IndexAssign]*/
/*omit.element: unknownListIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
unknownListIndexAssign(List list) {
list[0] = 1;
}
/*strong.element: possiblyNullMutableListIndexAssign:Specializer=[!IndexAssign]*/
/*omit.element: possiblyNullMutableListIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
possiblyNullMutableListIndexAssign(bool b) {
var list = b ? [0] : null;
list[0] = 1;
}
/*strong.element: mutableListIndexAssign:Specializer=[!IndexAssign]*/
/*omit.element: mutableListIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
mutableListIndexAssign() {
var list = [0];
list[0] = 1;
}
/*strong.element: mutableListDynamicIndexAssign:Specializer=[!IndexAssign]*/
/*omit.element: mutableListDynamicIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
mutableListDynamicIndexAssign(dynamic index) {
var list = [0];
list[index] = 1;
}
/*strong.element: mutableListDynamicValueIndexAssign:Specializer=[!IndexAssign]*/
/*omit.element: mutableListDynamicValueIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
mutableListDynamicValueIndexAssign(dynamic value) {
var list = [0];
list[0] = value;
}
/*element: immutableListIndexAssign:Specializer=[!IndexAssign]*/
@pragma('dart2js:noInline')
immutableListIndexAssign() {
var list = const [0];
list[0] = 1;
}
main() {
dynamicIndexAssign([]);
dynamicIndexAssign({});
unknownListIndexAssign([]);
unknownListIndexAssign(null);
possiblyNullMutableListIndexAssign(true);
possiblyNullMutableListIndexAssign(false);
mutableListIndexAssign();
mutableListDynamicIndexAssign(0);
mutableListDynamicIndexAssign('');
mutableListDynamicValueIndexAssign(0);
mutableListDynamicValueIndexAssign('');
immutableListIndexAssign();
}