[dart2js] Clean up (pre-)NNBD unit test configurations.

Change-Id: Ife85aafa90b1b0347fabb6e95f3d6c00c5307cd2
Bug: https://github.com/dart-lang/sdk/issues/42063
Fixes: https://github.com/dart-lang/sdk/issues/42063
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152440
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
This commit is contained in:
Mayank Patke 2020-06-25 18:44:32 +00:00 committed by commit-bot@chromium.org
parent a9bef090e8
commit 3b67681bcc
223 changed files with 901 additions and 6955 deletions

View file

@ -11,14 +11,12 @@ import '../util/colors.dart' as colors;
const String cfeMarker = 'cfe';
const String cfeWithNnbdMarker = '$cfeMarker:nnbd';
const String dart2jsMarker = 'dart2js';
const String dart2jsWithNnbdSdkMarker = '$dart2jsMarker:nnbd-sdk';
const String analyzerMarker = 'analyzer';
/// Markers used in annotated tests shared by CFE, analyzer and dart2js.
const List<String> sharedMarkers = [
cfeMarker,
dart2jsMarker,
dart2jsWithNnbdSdkMarker,
analyzerMarker,
];
@ -33,7 +31,6 @@ const List<String> sharedMarkersWithNnbd = [
cfeMarker,
cfeWithNnbdMarker,
dart2jsMarker,
dart2jsWithNnbdSdkMarker,
analyzerMarker,
];

View file

@ -20,10 +20,10 @@ main() {
print(/*Double(0.5)*/ double0);
print(
/*cfe|analyzer.Symbol(foo)*/
/*dart2js|dart2js:nnbd-sdk.Instance(Symbol,{_name:String(foo))*/
/*dart2js.Instance(Symbol,{_name:String(foo))*/
symbol0);
print(
/*cfe|analyzer.Symbol(foo)*/
/*dart2js|dart2js:nnbd-sdk.Instance(Symbol,{_name:String(foo))*/
/*dart2js.Instance(Symbol,{_name:String(foo))*/
symbol1);
}

View file

@ -5,7 +5,7 @@
String method() => 'foo';
const String string0 =
/*cfe|dart2js|dart2js:nnbd-sdk.error: Method invocation is not a constant expression.*/
/*cfe|dart2js.error: Method invocation is not a constant expression.*/
method();
main() {

View file

@ -15,15 +15,17 @@ const Map<String, int> Function(String, int) instantiation1 =
main() {
print(
/*cfe|dart2js|dart2js:nnbd-sdk.Function(method1)*/
/*cfe|dart2js.Function(method1)*/
/*analyzer.Function(method1,type=T Function<T>(T))*/
function0);
print(
/*cfe|dart2js.Instantiation(method1<int>)*/
/*cfe.Instantiation(method1<int>)*/
/*dart2js.Instantiation(method1<int*>)*/
/*analyzer.Function(method1,type=int Function(int))*/
/*dart2js:nnbd-sdk.Instantiation(method1<int*>)*/ instantiation0);
instantiation0);
print(
/*cfe|dart2js.Instantiation(method2<String,int>)*/
/*cfe.Instantiation(method2<String,int>)*/
/*dart2js.Instantiation(method2<String*,int*>)*/
/*analyzer.Function(method2,type=Map<String, int> Function(String, int))*/
/*dart2js:nnbd-sdk.Instantiation(method2<String*,int*>)*/ instantiation1);
instantiation1);
}

View file

@ -17,11 +17,11 @@ const list4 = /*cfe.List<int>(Int(42),Int(87))*/ [42, 87];
main() {
print(/*List<dynamic>()*/ list0);
print(
/*cfe|analyzer|dart2js.List<int>()*/ /*dart2js:nnbd-sdk.List<int*>()*/ list1);
/*cfe|analyzer.List<int>()*/ /*dart2js.List<int*>()*/ list1);
print(
/*cfe|analyzer|dart2js.List<int>()*/ /*dart2js:nnbd-sdk.List<int*>()*/ list2);
/*cfe|analyzer.List<int>()*/ /*dart2js.List<int*>()*/ list2);
print(
/*cfe|analyzer|dart2js.List<int>(Int(42))*/ /*dart2js:nnbd-sdk.List<int*>(Int(42))*/ list3);
/*cfe|analyzer.List<int>(Int(42))*/ /*dart2js.List<int*>(Int(42))*/ list3);
print(
/*cfe|analyzer|dart2js.List<int>(Int(42),Int(87))*/ /*dart2js:nnbd-sdk.List<int*>(Int(42),Int(87))*/ list4);
/*cfe|analyzer.List<int>(Int(42),Int(87))*/ /*dart2js.List<int*>(Int(42),Int(87))*/ list4);
}

View file

@ -18,11 +18,11 @@ const map4 = /*cfe.Map<String,int>(String(foo):Int(42),String(bar):Int(87))*/
main() {
print(/*Map<dynamic,dynamic>()*/ map0);
print(
/*cfe|analyzer|dart2js.Map<String,int>()*/ /*dart2js:nnbd-sdk.Map<String*,int*>()*/ map1);
/*cfe|analyzer.Map<String,int>()*/ /*dart2js.Map<String*,int*>()*/ map1);
print(
/*cfe|analyzer|dart2js.Map<String,int>()*/ /*dart2js:nnbd-sdk.Map<String*,int*>()*/ map2);
/*cfe|analyzer.Map<String,int>()*/ /*dart2js.Map<String*,int*>()*/ map2);
print(
/*cfe|analyzer|dart2js.Map<String,int>(String(foo):Int(42))*/ /*dart2js:nnbd-sdk.Map<String*,int*>(String(foo):Int(42))*/ map3);
/*cfe|analyzer.Map<String,int>(String(foo):Int(42))*/ /*dart2js.Map<String*,int*>(String(foo):Int(42))*/ map3);
print(
/*cfe|analyzer|dart2js.Map<String,int>(String(foo):Int(42),String(bar):Int(87))*/ /*dart2js:nnbd-sdk.Map<String*,int*>(String(foo):Int(42),String(bar):Int(87))*/ map4);
/*cfe|analyzer.Map<String,int>(String(foo):Int(42),String(bar):Int(87))*/ /*dart2js.Map<String*,int*>(String(foo):Int(42),String(bar):Int(87))*/ map4);
}

View file

@ -1,4 +1,3 @@
cfe=pkg/front_end/test/id_tests/constant_test.dart
analyzer=pkg/analyzer/test/id_tests/constant_test.dart
dart2js=pkg/compiler/test/model/cfe_constant_test.dart
dart2js:nnbd-sdk=pkg/compiler/test/model/cfe_constant_test.dart

View file

@ -22,11 +22,11 @@ const set4 = /*cfe.Set<int>(Int(42),Int(87))*/ {42, 87};
main() {
print(/*Set<dynamic>()*/ set0);
print(
/*cfe|analyzer|dart2js.Set<int>()*/ /*dart2js:nnbd-sdk.Set<int*>()*/ set1);
/*cfe|analyzer.Set<int>()*/ /*dart2js.Set<int*>()*/ set1);
print(
/*cfe|analyzer|dart2js.Set<int>()*/ /*dart2js:nnbd-sdk.Set<int*>()*/ set2);
/*cfe|analyzer.Set<int>()*/ /*dart2js.Set<int*>()*/ set2);
print(
/*cfe|analyzer|dart2js.Set<int>(Int(42))*/ /*dart2js:nnbd-sdk.Set<int*>(Int(42))*/ set3);
/*cfe|analyzer.Set<int>(Int(42))*/ /*dart2js.Set<int*>(Int(42))*/ set3);
print(
/*cfe|analyzer|dart2js.Set<int>(Int(42),Int(87))*/ /*dart2js:nnbd-sdk.Set<int*>(Int(42),Int(87))*/ set4);
/*cfe|analyzer.Set<int>(Int(42),Int(87))*/ /*dart2js.Set<int*>(Int(42),Int(87))*/ set4);
}

View file

@ -22,27 +22,27 @@ const null_ = /*cfe.TypeLiteral(Null)*/ Null;
main() {
print(
/*cfe|analyzer.TypeLiteral(dynamic Function())*/
/*dart2js|dart2js:nnbd-sdk.TypeLiteral(()->dynamic)*/
/*dart2js.TypeLiteral(()->dynamic)*/
typedef);
print(
/*cfe|analyzer.TypeLiteral(void Function(dynamic))*/
/*dart2js|dart2js:nnbd-sdk.TypeLiteral((dynamic)->void)*/
/*dart2js.TypeLiteral((dynamic)->void)*/
genericTypedef);
print(
/*cfe|analyzer.TypeLiteral(void Function<T>(T))*/
/*dart2js|dart2js:nnbd-sdk.TypeLiteral((0)->void)*/
/*dart2js.TypeLiteral((0)->void)*/
genericFunctionTypedef);
print(
/*cfe|analyzer.TypeLiteral(void Function<T>(FutureOr<T>))*/
/*dart2js|dart2js:nnbd-sdk.TypeLiteral((FutureOr<0>)->void)*/
/*dart2js.TypeLiteral((FutureOr<0>)->void)*/
typedefWithFutureOr);
print(
/*cfe|analyzer.TypeLiteral(FutureOr<dynamic>)*/
/*dart2js|dart2js:nnbd-sdk.TypeLiteral(dynamic)*/
/*dart2js.TypeLiteral(dynamic)*/
futureOr);
print(

View file

@ -51,7 +51,6 @@
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/native_typed_data.dart": {
"Dynamic invocation of '>'.": 1,
"Dynamic invocation of '|'.": 3,
"Dynamic invocation of '>='.": 1
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/async_patch.dart": {
@ -60,9 +59,6 @@
"Dynamic invocation of 'call'.": 4,
"Dynamic invocation of 'then'.": 1
},
"org-dartlang-sdk:///lib/async/async_error.dart": {
"Dynamic invocation of 'call'.": 1
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/collection_patch.dart": {
"Dynamic access of 'dart.collection::_length'.": 2,
"Dynamic invocation of 'dart.collection::_computeKeys'.": 2,
@ -81,7 +77,6 @@
"Dynamic invocation of 'remove'.": 2,
"Dynamic update to 'dart.dom.html::_innerHtml'.": 1,
"Dynamic access of 'firstChild'.": 2,
"Dynamic invocation of 'append'.": 1,
"Dynamic access of 'tagName'.": 2,
"Dynamic invocation of 'call'.": 2,
"Dynamic invocation of 'dart.dom.html::_initKeyboardEvent'.": 1,
@ -99,18 +94,10 @@
"org-dartlang-sdk:///lib/html/html_common/filtered_element_list.dart": {
"Dynamic invocation of 'remove'.": 1
},
"org-dartlang-sdk:///lib/indexed_db/dart2js/indexed_db_dart2js.dart": {
"Dynamic access of 'onUpgradeNeeded'.": 1,
"Dynamic invocation of 'listen'.": 2,
"Dynamic access of 'onBlocked'.": 1
},
"org-dartlang-sdk:///lib/io/directory_impl.dart": {
"Dynamic invocation of '[]'.": 10
},
"org-dartlang-sdk:///lib/io/file_impl.dart": {
"Dynamic invocation of 'cancel'.": 1,
"Dynamic invocation of 'pause'.": 1,
"Dynamic invocation of 'resume'.": 1,
"Dynamic invocation of '[]'.": 4,
"Dynamic access of 'length'.": 2
},
@ -118,7 +105,6 @@
"Dynamic invocation of '[]'.": 7
},
"org-dartlang-sdk:///lib/io/io_resource_info.dart": {
"Dynamic invocation of 'containsKey'.": 1,
"Dynamic invocation of '[]'.": 1,
"Dynamic access of 'path'.": 1,
"Dynamic access of 'dart.io::_path'.": 1,
@ -152,10 +138,7 @@
"Dynamic invocation of 'dart.io::_detachRaw'.": 2,
"Dynamic access of 'closedReadEventSent'.": 1,
"Dynamic update to 'dart.io::_owner'.": 1,
"Dynamic access of 'length'.": 1,
"Dynamic invocation of '~/'.": 1,
"Dynamic invocation of '+'.": 2,
"Dynamic invocation of '-'.": 7
"Dynamic access of 'length'.": 1
},
"org-dartlang-sdk:///lib/io/stdio.dart": {
"Dynamic invocation of 'writeFromSync'.": 1,
@ -200,9 +183,6 @@
},
"org-dartlang-sdk:///lib/_http/http_impl.dart": {
"Dynamic access of 'message'.": 3,
"Dynamic invocation of 'trim'.": 1,
"Dynamic invocation of 'toLowerCase'.": 1,
"Dynamic invocation of 'split'.": 1,
"Dynamic invocation of 'call'.": 1,
"Dynamic invocation of 'destroy'.": 2,
"Dynamic invocation of 'setOption'.": 1,
@ -216,9 +196,6 @@
"Dynamic invocation of 'close'.": 1
},
"org-dartlang-sdk:///lib/_http/websocket_impl.dart": {
"Dynamic access of 'address'.": 1,
"Dynamic access of 'host'.": 1,
"Dynamic access of 'port'.": 1,
"Dynamic invocation of 'dart._http::_toJSON'.": 1
}
}

View file

@ -1,201 +0,0 @@
{
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/js_number.dart": {
"Dynamic invocation of '[]'.": 5,
"Dynamic invocation of '<'.": 4,
"Dynamic invocation of '>='.": 1,
"Dynamic invocation of '<='.": 1,
"Dynamic invocation of '>'.": 2
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/js_helper.dart": {
"Dynamic invocation of '[]'.": 3,
"Dynamic access of 'isNaN'.": 3,
"Dynamic invocation of '<='.": 2,
"Dynamic invocation of '-'.": 3,
"Dynamic invocation of '&'.": 1,
"Dynamic invocation of '>>'.": 1,
"Dynamic invocation of '<'.": 2,
"Dynamic invocation of '+'.": 1,
"Dynamic invocation of '>'.": 1,
"Dynamic access of 'length'.": 1
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/string_helper.dart": {
"Dynamic invocation of '<'.": 1,
"Dynamic invocation of '+'.": 1,
"Dynamic invocation of '>='.": 1,
"Dynamic invocation of 'substring'.": 7,
"Dynamic invocation of 'allMatches'.": 3,
"Dynamic access of 'isNotEmpty'.": 1,
"Dynamic invocation of '_js_helper::_execGlobal'.": 1,
"Dynamic access of 'start'.": 1,
"Dynamic access of 'end'.": 1,
"Dynamic invocation of 'call'.": 13,
"Dynamic access of 'length'.": 3,
"Dynamic invocation of 'codeUnitAt'.": 2,
"Dynamic invocation of '[]'.": 1,
"Dynamic access of 'iterator'.": 2,
"Dynamic invocation of 'replaceRange'.": 2
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/linked_hash_map.dart": {
"Dynamic access of '_js_helper::_length'.": 2,
"Dynamic access of '_js_helper::_modifications'.": 4,
"Dynamic invocation of 'containsKey'.": 1,
"Dynamic access of '_js_helper::_first'.": 2
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/native_helper.dart": {
"Dynamic access of 'length'.": 2,
"Dynamic invocation of '[]'.": 1
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/regexp_helper.dart": {
"Dynamic access of 'length'.": 1,
"Dynamic invocation of '-'.": 1
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/native_typed_data.dart": {
"Dynamic invocation of '>'.": 1,
"Dynamic invocation of '>='.": 1
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/async_patch.dart": {
"Dynamic invocation of '-'.": 1,
"Dynamic access of 'iterator'.": 1,
"Dynamic invocation of 'call'.": 4,
"Dynamic invocation of 'then'.": 1
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/collection_patch.dart": {
"Dynamic access of 'dart.collection::_length'.": 2,
"Dynamic invocation of 'dart.collection::_computeKeys'.": 2,
"Dynamic invocation of 'containsKey'.": 2,
"Dynamic access of 'dart.collection::_keys'.": 2,
"Dynamic access of 'length'.": 1,
"Dynamic access of 'isEmpty'.": 1,
"Dynamic access of 'dart.collection::_modifications'.": 5,
"Dynamic access of 'dart.collection::_map'.": 4,
"Dynamic access of 'dart.collection::_elements'.": 1,
"Dynamic access of 'dart.collection::_element'.": 1,
"Dynamic access of 'dart.collection::_first'.": 1
},
"org-dartlang-sdk:///lib/html/dart2js/html_dart2js.dart": {
"Dynamic access of 'style'.": 1,
"Dynamic invocation of 'remove'.": 2,
"Dynamic update to 'dart.dom.html::_innerHtml'.": 1,
"Dynamic access of 'firstChild'.": 2,
"Dynamic access of 'tagName'.": 2,
"Dynamic invocation of 'call'.": 2,
"Dynamic invocation of 'dart.dom.html::_initKeyboardEvent'.": 1,
"Dynamic access of 'attributes'.": 1,
"Dynamic invocation of '[]'.": 1,
"Dynamic invocation of 'toLowerCase'.": 1,
"Dynamic invocation of 'attached'.": 1,
"Dynamic invocation of 'detached'.": 1,
"Dynamic invocation of 'attributeChanged'.": 1,
"Dynamic invocation of 'createElement'.": 1
},
"org-dartlang-sdk:///lib/html/html_common/conversions.dart": {
"Dynamic invocation of '[]='.": 1
},
"org-dartlang-sdk:///lib/html/html_common/filtered_element_list.dart": {
"Dynamic invocation of 'remove'.": 1
},
"org-dartlang-sdk:///lib/io/directory_impl.dart": {
"Dynamic invocation of '[]'.": 10
},
"org-dartlang-sdk:///lib/io/file_impl.dart": {
"Dynamic invocation of '[]'.": 4,
"Dynamic access of 'length'.": 2
},
"org-dartlang-sdk:///lib/io/file_system_entity.dart": {
"Dynamic invocation of '[]'.": 7
},
"org-dartlang-sdk:///lib/io/io_resource_info.dart": {
"Dynamic invocation of '[]'.": 1,
"Dynamic access of 'path'.": 1,
"Dynamic access of 'dart.io::_path'.": 1,
"Dynamic access of 'pid'.": 1,
"Dynamic access of 'dart.io::_arguments'.": 1,
"Dynamic access of 'dart.io::_workingDirectory'.": 2,
"Dynamic access of 'isListening'.": 3,
"Dynamic access of 'address'.": 4,
"Dynamic access of 'host'.": 5,
"Dynamic access of 'port'.": 3,
"Dynamic access of 'remoteAddress'.": 2,
"Dynamic access of 'remotePort'.": 2,
"Dynamic access of 'isTcp'.": 1,
"Dynamic access of 'type'.": 1,
"Dynamic access of 'name'.": 1
},
"org-dartlang-sdk:///lib/io/link.dart": {
"Dynamic invocation of '[]'.": 3
},
"org-dartlang-sdk:///lib/io/platform_impl.dart": {
"Dynamic invocation of 'indexOf'.": 1,
"Dynamic invocation of '>'.": 1,
"Dynamic invocation of 'substring'.": 2,
"Dynamic invocation of '+'.": 1
},
"org-dartlang-sdk:///lib/io/secure_server_socket.dart": {
"Dynamic update to 'dart.io::_owner'.": 1
},
"org-dartlang-sdk:///lib/io/secure_socket.dart": {
"Dynamic invocation of '[]'.": 10,
"Dynamic invocation of 'dart.io::_detachRaw'.": 2,
"Dynamic access of 'closedReadEventSent'.": 1,
"Dynamic update to 'dart.io::_owner'.": 1,
"Dynamic access of 'length'.": 1
},
"org-dartlang-sdk:///lib/io/stdio.dart": {
"Dynamic invocation of 'writeFromSync'.": 1,
"Dynamic invocation of 'cancel'.": 1,
"Dynamic invocation of 'closeSync'.": 1
},
"org-dartlang-sdk:///lib/io/common.dart": {
"Dynamic invocation of '[]'.": 3
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/js_patch.dart": {
"Dynamic invocation of '[]'.": 1
},
"org-dartlang-sdk:///lib/svg/dart2js/svg_dart2js.dart": {
"Dynamic invocation of 'createFragment'.": 1,
"Dynamic access of 'nodes'.": 1,
"Dynamic invocation of 'where'.": 1,
"Dynamic access of 'single'.": 1
},
"org-dartlang-sdk:///lib/core/errors.dart": {
"Dynamic access of 'length'.": 2
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/convert_patch.dart": {
"Dynamic invocation of 'clear'.": 1
},
"org-dartlang-sdk:///lib/convert/json.dart": {
"Dynamic invocation of 'toJson'.": 1
},
"org-dartlang-sdk:///lib/_http/crypto.dart": {
"Dynamic invocation of '+'.": 2,
"Dynamic invocation of '&'.": 3,
"Dynamic invocation of 'unary-'.": 1,
"Dynamic invocation of '-'.": 2
},
"org-dartlang-sdk:///lib/_http/http_date.dart": {
"Dynamic access of 'length'.": 3,
"Dynamic invocation of '<'.": 1,
"Dynamic invocation of '>='.": 2,
"Dynamic invocation of '[]'.": 7
},
"org-dartlang-sdk:///lib/_http/http_headers.dart": {
"Dynamic invocation of 'toLowerCase'.": 1
},
"org-dartlang-sdk:///lib/_http/http_impl.dart": {
"Dynamic access of 'message'.": 3,
"Dynamic invocation of 'call'.": 1,
"Dynamic invocation of 'destroy'.": 2,
"Dynamic invocation of 'setOption'.": 1,
"Dynamic access of 'address'.": 2,
"Dynamic access of 'host'.": 2,
"Dynamic access of 'port'.": 2,
"Dynamic access of 'remoteAddress'.": 1,
"Dynamic access of 'remotePort'.": 1,
"Dynamic invocation of 'dart._http::_toJSON'.": 3,
"Dynamic invocation of 'listen'.": 1,
"Dynamic invocation of 'close'.": 1
},
"org-dartlang-sdk:///lib/_http/websocket_impl.dart": {
"Dynamic invocation of 'dart._http::_toJSON'.": 1
}
}

View file

@ -5,13 +5,12 @@
// @dart = 2.7
import 'package:async_helper/async_helper.dart';
import '../helpers/memory_compiler.dart';
import 'analysis_helper.dart';
// TODO(johnniwinther): Remove unneeded dynamic accesses from platform source
// code.
main(List<String> args) {
var goldenFile = isDart2jsNnbd ? 'api_allowed_nnbd.json' : 'api_allowed.json';
var goldenFile = 'api_allowed.json';
asyncTest(() async {
await run(
Uri.parse('memory:main.dart'), 'pkg/compiler/test/analyses/$goldenFile',

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/annotations/annotations_test.dart
prod:nnbd-off=pkg/compiler/test/annotations/annotations_test.dart
spec:nnbd-sdk=pkg/compiler/test/annotations/annotations_test.dart
prod:nnbd-sdk=pkg/compiler/test/annotations/annotations_test.dart
spec=pkg/compiler/test/annotations/annotations_test.dart
prod=pkg/compiler/test/annotations/annotations_test.dart

View file

@ -58,12 +58,12 @@ class Class1<T> {
}
var local2 =
/*spec:nnbd-off|spec:nnbd-sdk.fields=[S,this],free=[S,this],hasThis*/
/*prod:nnbd-off|prod:nnbd-sdk.hasThis*/
/*prod.hasThis*/
/*spec.fields=[S,this],free=[S,this],hasThis*/
(o) {
return
/*spec:nnbd-off|spec:nnbd-sdk.fields=[S,this],free=[S,this],hasThis*/
/*prod:nnbd-off|prod:nnbd-sdk.hasThis*/
/*prod.hasThis*/
/*spec.fields=[S,this],free=[S,this],hasThis*/
() => new Map<T, S>();
};
return local2(local<double>());

View file

@ -7,8 +7,7 @@
T id<T>(T t) => t;
method<S>(S s) {
/*spec:nnbd-off|spec:nnbd-sdk.fields=[S],free=[S]*/
/*prod:nnbd-off.*/
/*spec.fields=[S],free=[S]*/
S Function(S) getId() => id;
return getId();
}

View file

@ -13,8 +13,8 @@ class B<S> {
/*member: B.method:hasThis*/
method() {
return
/*spec:nnbd-off|spec:nnbd-sdk.fields=[this],free=[this],hasThis*/
/*prod:nnbd-off|prod:nnbd-sdk.hasThis*/
/*spec.fields=[this],free=[this],hasThis*/
/*prod.hasThis*/
() {
F<S> c = f;
return c;

View file

@ -10,8 +10,7 @@ typedef int F<R>(R a);
method<S>() {
return
/*spec:nnbd-off|spec:nnbd-sdk.fields=[S],free=[S]*/
/*prod:nnbd-off.*/
/*spec.fields=[S],free=[S]*/
() {
F<S> c = f;
return c;

View file

@ -11,8 +11,8 @@ class A<T> {
/*member: A.method:hasThis*/
@pragma('dart2js:noInline')
method() {
/*prod:nnbd-off|prod:nnbd-sdk.hasThis*/
/*spec:nnbd-off|spec:nnbd-sdk.fields=[this],free=[this],hasThis*/
/*spec.fields=[this],free=[this],hasThis*/
/*prod.hasThis*/
dynamic local() => <T>[];
return local;
}

View file

@ -8,8 +8,7 @@ import 'package:expect/expect.dart';
@pragma('dart2js:noInline')
method<T>() {
/*prod:nnbd-off.*/
/*spec:nnbd-off|spec:nnbd-sdk.fields=[T],free=[T]*/
/*spec.fields=[T],free=[T]*/
dynamic local() => <T>[];
return local;
}

View file

@ -11,8 +11,8 @@ class A<T> {
/*member: A.method:hasThis*/
@pragma('dart2js:noInline')
method() {
/*prod:nnbd-off|prod:nnbd-sdk.hasThis*/
/*spec:nnbd-off|spec:nnbd-sdk.fields=[this],free=[this],hasThis*/
/*spec.fields=[this],free=[this],hasThis*/
/*prod.hasThis*/
dynamic local() => <T, int>{};
return local;
}

View file

@ -8,8 +8,7 @@ import 'package:expect/expect.dart';
@pragma('dart2js:noInline')
method<T>() {
/*prod:nnbd-off.*/
/*spec:nnbd-off|spec:nnbd-sdk.fields=[T],free=[T]*/
/*spec.fields=[T],free=[T]*/
dynamic local() => <T, int>{};
return local;
}

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/closure/closure_test.dart
prod:nnbd-off=pkg/compiler/test/closure/closure_test.dart
spec:nnbd-sdk=pkg/compiler/test/closure/closure_test.dart
prod:nnbd-sdk=pkg/compiler/test/closure/closure_test.dart
spec=pkg/compiler/test/closure/closure_test.dart
prod=pkg/compiler/test/closure/closure_test.dart

View file

@ -40,8 +40,8 @@ class Class2<T> {
class Class3<T> {
/*member: Class3.method3:hasThis*/
method3(dynamic o) {
/*prod:nnbd-off|prod:nnbd-sdk.fields=[o],free=[o],hasThis*/
/*spec:nnbd-off|spec:nnbd-sdk.fields=[o,this],free=[o,this],hasThis*/
/*spec.fields=[o,this],free=[o,this],hasThis*/
/*prod.fields=[o],free=[o],hasThis*/
T local() => o;
return local;
}

View file

@ -32,8 +32,8 @@ method2<T>(dynamic o) {
/*member: method3:*/
method3<T>(dynamic o) {
/*spec:nnbd-off|spec:nnbd-sdk.fields=[T,o],free=[T,o]*/
/*prod:nnbd-off|prod:nnbd-sdk.fields=[o],free=[o]*/
/*spec.fields=[T,o],free=[T,o]*/
/*prod.fields=[o],free=[o]*/
T local() => o;
return local;
}

View file

@ -50,8 +50,8 @@ class Class1b<T> {
class Class2<T> {
/*member: Class2.method2:hasThis*/
method2() {
/*prod:nnbd-off|prod:nnbd-sdk.hasThis*/
/*spec:nnbd-off|spec:nnbd-sdk.fields=[this],free=[this],hasThis*/
/*spec.fields=[this],free=[this],hasThis*/
/*prod.hasThis*/
dynamic local(T t) => t;
return local;
}
@ -65,8 +65,8 @@ class Class2<T> {
class Class3<T> {
/*member: Class3.method3:hasThis*/
method3(dynamic o) {
/*prod:nnbd-off|prod:nnbd-sdk.fields=[o],free=[o],hasThis*/
/*spec:nnbd-off|spec:nnbd-sdk.fields=[o,this],free=[o,this],hasThis*/
/*spec.fields=[o,this],free=[o,this],hasThis*/
/*prod.fields=[o],free=[o],hasThis*/
T local() => o;
return local;
}
@ -108,8 +108,8 @@ class Class5<T> {
class Class6<T> {
/*member: Class6.method6:hasThis*/
method6() {
/*prod:nnbd-off|prod:nnbd-sdk.hasThis*/
/*spec:nnbd-off|spec:nnbd-sdk.fields=[this],free=[this],hasThis*/
/*spec.fields=[this],free=[this],hasThis*/
/*prod.hasThis*/
dynamic local(T t) {
/*fields=[t],free=[t],hasThis*/
dynamic inner() => t;
@ -128,8 +128,8 @@ class Class6<T> {
class Class7<T> {
/*member: Class7.method7:hasThis*/
method7(dynamic o) {
/*prod:nnbd-off|prod:nnbd-sdk.fields=[o],free=[o],hasThis*/
/*spec:nnbd-off|spec:nnbd-sdk.fields=[o,this],free=[o,this],hasThis*/
/*spec.fields=[o,this],free=[o,this],hasThis*/
/*prod.fields=[o],free=[o],hasThis*/
T local() {
/*fields=[o],free=[o],hasThis*/
dynamic inner() => o;

View file

@ -23,8 +23,7 @@ method1<T>(T o) {
////////////////////////////////////////////////////////////////////////////////
method2<T>() {
/*spec:nnbd-off|spec:nnbd-sdk.fields=[T],free=[T]*/
/*prod:nnbd-off.*/
/*spec.fields=[T],free=[T]*/
dynamic local(T t) => t;
return local;
}
@ -34,8 +33,8 @@ method2<T>() {
////////////////////////////////////////////////////////////////////////////////
method3<T>(dynamic o) {
/*spec:nnbd-off|spec:nnbd-sdk.fields=[T,o],free=[T,o]*/
/*prod:nnbd-off|prod:nnbd-sdk.fields=[o],free=[o]*/
/*spec.fields=[T,o],free=[T,o]*/
/*prod.fields=[o],free=[o]*/
T local() => o;
return local;
}
@ -65,8 +64,7 @@ T method5<T>(dynamic o) {
////////////////////////////////////////////////////////////////////////////////
method6<T>() {
/*spec:nnbd-off|spec:nnbd-sdk.fields=[T],free=[T]*/
/*prod:nnbd-off.*/
/*spec.fields=[T],free=[T]*/
dynamic local(T t) {
/*fields=[t],free=[t]*/
dynamic inner() => t;
@ -81,8 +79,8 @@ method6<T>() {
////////////////////////////////////////////////////////////////////////////////
method7<T>(dynamic o) {
/*spec:nnbd-off|spec:nnbd-sdk.fields=[T,o],free=[T,o]*/
/*prod:nnbd-off|prod:nnbd-sdk.fields=[o],free=[o]*/
/*spec.fields=[T,o],free=[T,o]*/
/*prod.fields=[o],free=[o]*/
T local() {
/*fields=[o],free=[o]*/
dynamic inner() => o;

View file

@ -26,23 +26,20 @@ method1(dynamic c) {
}
class Class2a<T> {
/*spec:nnbd-sdk.member: Class2a.field2:
/*spec.member: Class2a.field2:
checked,
emitted
*/
/*spec:nnbd-off.member: Class2a.field2:checked,emitted*/
/*prod:nnbd-off|prod:nnbd-sdk.member: Class2a.field2:emitted*/
/*prod.member: Class2a.field2:emitted*/
T field2;
}
/*spec:nnbd-off.member: method2:calls=[set$field2(1)],params=1*/
/*prod:nnbd-off.member: method2:assign=[field2],params=1*/
@pragma('dart2js:noInline')
/*spec:nnbd-sdk.member: method2:
/*spec.member: method2:
calls=[set$field2(1)],
params=1
*/
/*prod:nnbd-sdk.member: method2:
/*prod.member: method2:
assign=[field2],
params=1
*/
@ -51,30 +48,26 @@ method2(dynamic c) {
}
class Class3a {
/*spec:nnbd-sdk.member: Class3a.field3:
/*spec.member: Class3a.field3:
checked,
emitted
*/
/*prod:nnbd-sdk.member: Class3a.field3:
/*prod.member: Class3a.field3:
emitted,
set=simple
*/
/*spec:nnbd-off.member: Class3a.field3:checked,emitted*/
/*prod:nnbd-off.member: Class3a.field3:emitted,set=simple*/
int field3;
}
class Class3b {
/*spec:nnbd-sdk.member: Class3b.field3:
/*spec.member: Class3b.field3:
checked,
emitted
*/
/*prod:nnbd-sdk.member: Class3b.field3:
/*prod.member: Class3b.field3:
emitted,
set=simple
*/
/*spec:nnbd-off.member: Class3b.field3:checked,emitted*/
/*prod:nnbd-off.member: Class3b.field3:emitted,set=simple*/
int field3;
}
@ -85,28 +78,24 @@ method3(dynamic c) {
}
class Class4a {
/*spec:nnbd-sdk.member: Class4a.field4:
/*spec.member: Class4a.field4:
checked,
emitted
*/
/*prod:nnbd-sdk.member: Class4a.field4:
/*prod.member: Class4a.field4:
emitted,
set=simple
*/
/*spec:nnbd-off.member: Class4a.field4:checked,emitted*/
/*prod:nnbd-off.member: Class4a.field4:emitted,set=simple*/
int field4;
}
class Class4b implements Class4a {
/*spec:nnbd-off.member: Class4b.field4:checked,emitted*/
/*prod:nnbd-off.member: Class4b.field4:emitted,set=simple*/
@override
/*spec:nnbd-sdk.member: Class4b.field4:
/*spec.member: Class4b.field4:
checked,
emitted
*/
/*prod:nnbd-sdk.member: Class4b.field4:
/*prod.member: Class4b.field4:
emitted,
set=simple
*/

View file

@ -26,51 +26,45 @@ method1(dynamic c) {
}
class Class2a<T> {
/*spec:nnbd-sdk.member: Class2a.field2:
/*spec.member: Class2a.field2:
checked,
elided
*/
/*spec:nnbd-off.member: Class2a.field2:checked,elided*/
/*prod:nnbd-off|prod:nnbd-sdk.member: Class2a.field2:elided*/
/*prod.member: Class2a.field2:elided*/
T field2;
}
/*spec:nnbd-off.member: method2:calls=[set$field2(1)],params=1*/
/*prod:nnbd-off|prod:nnbd-sdk.member: method2:params=1*/
@pragma('dart2js:noInline')
/*spec:nnbd-sdk.member: method2:
/*spec.member: method2:
calls=[set$field2(1)],
params=1
*/
/*prod.member: method2:params=1*/
method2(dynamic c) {
c.field2 = 42;
}
class Class3a {
/*spec:nnbd-sdk.member: Class3a.field3:
/*spec.member: Class3a.field3:
checked,
elided
*/
/*prod:nnbd-sdk.member: Class3a.field3:
/*prod.member: Class3a.field3:
elided,
set=simple
*/
/*spec:nnbd-off.member: Class3a.field3:checked,elided*/
/*prod:nnbd-off.member: Class3a.field3:elided,set=simple*/
int field3;
}
class Class3b {
/*spec:nnbd-sdk.member: Class3b.field3:
/*spec.member: Class3b.field3:
checked,
elided
*/
/*prod:nnbd-sdk.member: Class3b.field3:
/*prod.member: Class3b.field3:
elided,
set=simple
*/
/*spec:nnbd-off.member: Class3b.field3:checked,elided*/
/*prod:nnbd-off.member: Class3b.field3:elided,set=simple*/
int field3;
}
@ -81,28 +75,24 @@ method3(dynamic c) {
}
class Class4a {
/*spec:nnbd-sdk.member: Class4a.field4:
/*spec.member: Class4a.field4:
checked,
elided
*/
/*prod:nnbd-sdk.member: Class4a.field4:
/*prod.member: Class4a.field4:
elided,
set=simple
*/
/*spec:nnbd-off.member: Class4a.field4:checked,elided*/
/*prod:nnbd-off.member: Class4a.field4:elided,set=simple*/
int field4;
}
class Class4b implements Class4a {
/*spec:nnbd-off.member: Class4b.field4:checked,elided*/
/*prod:nnbd-off.member: Class4b.field4:elided,set=simple*/
@override
/*spec:nnbd-sdk.member: Class4b.field4:
/*spec.member: Class4b.field4:
checked,
elided
*/
/*prod:nnbd-sdk.member: Class4b.field4:
/*prod.member: Class4b.field4:
elided,
set=simple
*/

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/codegen/model_test.dart
prod:nnbd-off=pkg/compiler/test/codegen/model_test.dart
spec:nnbd-sdk=pkg/compiler/test/codegen/model_test.dart
prod:nnbd-sdk=pkg/compiler/test/codegen/model_test.dart
spec=pkg/compiler/test/codegen/model_test.dart
prod=pkg/compiler/test/codegen/model_test.dart

View file

@ -20,8 +20,7 @@ void foo(I1 x) {}
@pragma('dart2js:noInline')
void bar(I2 x) {}
/*spec:nnbd-off|prod:nnbd-off.member: main:calls=[bar(1),bar(1),foo(1),foo(1)],params=0*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: main:
/*member: main:
calls=[
bar(1),
bar(1),

View file

@ -6,12 +6,7 @@
import 'lib1.dart' deferred as lib;
/*spec:nnbd-off.member: main:
OutputUnit(main, {}),
constants=[
MapConstant(<int, dynamic Function({M b})>{IntConstant(1): FunctionConstant(f1), IntConstant(2): FunctionConstant(f2)})=OutputUnit(1, {lib})]
*/
/*spec:nnbd-sdk.member: main:OutputUnit(main, {}),constants=[MapConstant(<int*, dynamic Function({M* b})*>{IntConstant(1): FunctionConstant(f1), IntConstant(2): FunctionConstant(f2)})=OutputUnit(1, {lib})]*/
/*member: main:OutputUnit(main, {}),constants=[MapConstant(<int*, dynamic Function({M* b})*>{IntConstant(1): FunctionConstant(f1), IntConstant(2): FunctionConstant(f2)})=OutputUnit(1, {lib})]*/
main() async {
await lib.loadLibrary();
print(lib.table[1]);

View file

@ -9,11 +9,7 @@ T getFoo<T>(T v) => v;
typedef dynamic G<T>(T v);
/*spec:nnbd-off.member: m:
OutputUnit(1, {b}),
constants=[InstantiationConstant([int],FunctionConstant(getFoo))=OutputUnit(1, {b})]
*/
/*spec:nnbd-sdk.member: m:OutputUnit(1, {b}),constants=[InstantiationConstant([int*],FunctionConstant(getFoo))=OutputUnit(1, {b})]*/
/*member: m:OutputUnit(1, {b}),constants=[InstantiationConstant([int*],FunctionConstant(getFoo))=OutputUnit(1, {b})]*/
m(int x, {G<int> f: getFoo}) {
print(f(x));
}

View file

@ -9,12 +9,7 @@ T getFoo<T>(T v) => v;
typedef dynamic G<T>(T v);
/*spec:nnbd-off.member: m:
OutputUnit(1, {b}),
constants=[
InstantiationConstant([int],FunctionConstant(getFoo))=OutputUnit(1, {b})]
*/
/*spec:nnbd-sdk.member: m:OutputUnit(1, {b}),constants=[InstantiationConstant([int*],FunctionConstant(getFoo))=OutputUnit(1, {b})]*/
/*member: m:OutputUnit(1, {b}),constants=[InstantiationConstant([int*],FunctionConstant(getFoo))=OutputUnit(1, {b})]*/
m(int x, {G<int> f: getFoo}) {
print(f(x));
}

View file

@ -9,12 +9,7 @@ T getFoo<T, S>(T v, S w) => v;
typedef dynamic G<T, S>(T v, S w);
/*spec:nnbd-off.member: m:
OutputUnit(3, {c}),
constants=[
InstantiationConstant([int, int],FunctionConstant(getFoo))=OutputUnit(3, {c})]
*/
/*spec:nnbd-sdk.member: m:OutputUnit(3, {c}),constants=[InstantiationConstant([int*, int*],FunctionConstant(getFoo))=OutputUnit(3, {c})]*/
/*member: m:OutputUnit(3, {c}),constants=[InstantiationConstant([int*, int*],FunctionConstant(getFoo))=OutputUnit(3, {c})]*/
m(int x, int y, {G<int, int> f: getFoo}) {
print(f(x, y));
}

View file

@ -9,12 +9,7 @@ T getFoo<T>(T v) => v;
typedef dynamic G<T>(T v);
/*spec:nnbd-off.member: m:
OutputUnit(2, {b}),
constants=[
InstantiationConstant([int],FunctionConstant(getFoo))=OutputUnit(2, {b})]
*/
/*spec:nnbd-sdk.member: m:OutputUnit(2, {b}),constants=[InstantiationConstant([int*],FunctionConstant(getFoo))=OutputUnit(2, {b})]*/
/*member: m:OutputUnit(2, {b}),constants=[InstantiationConstant([int*],FunctionConstant(getFoo))=OutputUnit(2, {b})]*/
m(int x, {G<int> f: getFoo}) {
print(f(x));
}

View file

@ -9,12 +9,7 @@ T getFoo<T>(T v) => v;
typedef dynamic G<T>(T v);
/*spec:nnbd-off.member: m:
OutputUnit(3, {c}),
constants=[
InstantiationConstant([int],FunctionConstant(getFoo))=OutputUnit(3, {c})]
*/
/*spec:nnbd-sdk.member: m:OutputUnit(3, {c}),constants=[InstantiationConstant([int*],FunctionConstant(getFoo))=OutputUnit(3, {c})]*/
/*member: m:OutputUnit(3, {c}),constants=[InstantiationConstant([int*],FunctionConstant(getFoo))=OutputUnit(3, {c})]*/
m(int x, {G<int> f: getFoo}) {
print(f(x));
}

View file

@ -1,2 +1 @@
spec:nnbd-off=pkg/compiler/test/deferred_loading/deferred_loading_test.dart
spec:nnbd-sdk=pkg/compiler/test/deferred_loading/deferred_loading_test.dart
spec=pkg/compiler/test/deferred_loading/deferred_loading_test.dart

View file

@ -9,13 +9,7 @@ library lib2;
import "package:expect/expect.dart";
import "lib1.dart";
/*spec:nnbd-off.member: foo:
OutputUnit(3, {lib2}),
constants=[
ListConstant(<Map<int,int>>[MapConstant(<int, int>{IntConstant(1): IntConstant(3)})])=OutputUnit(3, {lib2}),
MapConstant(<int, int>{IntConstant(1): IntConstant(3)})=OutputUnit(3, {lib2})]
*/
/*spec:nnbd-sdk.member: foo:OutputUnit(3, {lib2}),constants=[ListConstant(<Map<int*,int*>*>[MapConstant(<int*, int*>{IntConstant(1): IntConstant(3)})])=OutputUnit(3, {lib2}),MapConstant(<int*, int*>{IntConstant(1): IntConstant(3)})=OutputUnit(3, {lib2})]*/
/*member: foo:OutputUnit(3, {lib2}),constants=[ListConstant(<Map<int*,int*>*>[MapConstant(<int*, int*>{IntConstant(1): IntConstant(3)})])=OutputUnit(3, {lib2}),MapConstant(<int*, int*>{IntConstant(1): IntConstant(3)})=OutputUnit(3, {lib2})]*/
foo() {
Expect.equals(1, C.foo());
Expect.mapEquals({}, C1.foo);

View file

@ -8,15 +8,7 @@ import 'lib1.dart' deferred as lib1;
import 'lib2.dart' as lib2;
import 'lib3.dart' deferred as lib3;
/*spec:nnbd-off.member: main:
OutputUnit(main, {}),
constants=[
ConstructedConstant(A<B>())=OutputUnit(1, {lib1}),
ConstructedConstant(A<F>())=OutputUnit(1, {lib1}),
ConstructedConstant(C<D>())=OutputUnit(main, {}),
ConstructedConstant(E<F>())=OutputUnit(3, {lib3})]
*/
/*spec:nnbd-sdk.member: main:OutputUnit(main, {}),constants=[ConstructedConstant(A<B*>())=OutputUnit(1, {lib1}),ConstructedConstant(A<F*>())=OutputUnit(1, {lib1}),ConstructedConstant(C<D*>())=OutputUnit(main, {}),ConstructedConstant(E<F*>())=OutputUnit(3, {lib3})]*/
/*member: main:OutputUnit(main, {}),constants=[ConstructedConstant(A<B*>())=OutputUnit(1, {lib1}),ConstructedConstant(A<F*>())=OutputUnit(1, {lib1}),ConstructedConstant(C<D*>())=OutputUnit(main, {}),ConstructedConstant(E<F*>())=OutputUnit(3, {lib3})]*/
main() async {
await lib1.loadLibrary();
lib1.field1;

View file

@ -36,7 +36,7 @@ main() {
asyncTest(() async {
Map<fe.ExperimentalFlag, bool> baseFlags = {
fe.ExperimentalFlag.nonNullable: isDart2jsNnbd
fe.ExperimentalFlag.nonNullable: true
};
await runTest(baseFlags);
});

View file

@ -27,54 +27,26 @@ export 'package:_fe_analyzer_shared/src/testing/id_testing.dart'
show DataInterpreter, StringDataInterpreter;
export '../helpers/memory_compiler.dart' show CollectedMessage;
const String specWithNnbdOffMarker = 'spec:nnbd-off';
const String prodWithNnbdOffMarker = 'prod:nnbd-off';
const String specWithNnbdSdkMarker = 'spec:nnbd-sdk';
const String prodWithNnbdSdkMarker = 'prod:nnbd-sdk';
const String specMarker = 'spec';
const String prodMarker = 'prod';
const TestConfig specWithNnbdOffConfig = const TestConfig(
specWithNnbdOffMarker, 'compliance mode with nnbd off', []);
const TestConfig specConfig = TestConfig(specMarker, 'compliance mode', []);
const TestConfig prodWithNnbdOffConfig = const TestConfig(
prodWithNnbdOffMarker,
'production mode with nnbd off',
const TestConfig prodConfig = TestConfig(prodMarker, 'production mode',
[Flags.omitImplicitChecks, Flags.laxRuntimeTypeToString]);
const TestConfig specWithNnbdSdkConfig = const TestConfig(
specWithNnbdSdkMarker, 'compliance mode with nnbd sdk', []);
const TestConfig prodWithNnbdSdkConfig = const TestConfig(
prodWithNnbdSdkMarker,
'production mode with nnbd sdk',
[Flags.omitImplicitChecks, Flags.laxRuntimeTypeToString]);
const List<String> allInternalMarkers = const [
specWithNnbdOffMarker,
prodWithNnbdOffMarker,
specWithNnbdSdkMarker,
prodWithNnbdSdkMarker
];
/// Default internal configurations not including experimental features.
List<TestConfig> defaultInternalConfigs = isDart2jsNnbd
? const [specWithNnbdSdkConfig, prodWithNnbdSdkConfig]
: const [specWithNnbdOffConfig, prodWithNnbdOffConfig];
const List<TestConfig> defaultInternalConfigs = [specConfig, prodConfig];
/// All internal configurations including experimental features.
List<TestConfig> allInternalConfigs = isDart2jsNnbd
? const [specWithNnbdSdkConfig, prodWithNnbdSdkConfig]
: const [specWithNnbdOffConfig, prodWithNnbdOffConfig];
const List<TestConfig> allInternalConfigs = [specConfig, prodConfig];
/// Compliance mode configurations (with strong mode checks) including
/// experimental features.
List<TestConfig> allSpecConfigs = isDart2jsNnbd
? const [specWithNnbdSdkConfig]
: const [specWithNnbdOffConfig];
const List<TestConfig> allSpecConfigs = [specConfig];
/// Test configuration used in tests shared with CFE.
TestConfig sharedConfig = isDart2jsNnbd
? const TestConfig(dart2jsWithNnbdSdkMarker, 'dart2js with nnbd sdk', [])
: const TestConfig(dart2jsMarker, 'dart2js', []);
const TestConfig sharedConfig = TestConfig(dart2jsMarker, 'dart2js', []);
abstract class DataComputer<T> {
const DataComputer();

View file

@ -19,8 +19,7 @@ class Class1 {
}
class Class2 {
/*spec:nnbd-off|spec:nnbd-sdk.member: Class2.field2:constant=BoolConstant(true)*/
/*prod:nnbd-off|prod:nnbd-sdk.strong.member: Class2.field2:constant=BoolConstant(true)*/
/*spec.member: Class2.field2:constant=BoolConstant(true)*/
final bool field2;
const Class2({this.field2: false});

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/field_analysis/jfield_analysis_test.dart
prod:nnbd-off=pkg/compiler/test/field_analysis/jfield_analysis_test.dart
spec:nnbd-sdk=pkg/compiler/test/field_analysis/jfield_analysis_test.dart
prod:nnbd-sdk=pkg/compiler/test/field_analysis/jfield_analysis_test.dart
spec=pkg/compiler/test/field_analysis/jfield_analysis_test.dart
prod=pkg/compiler/test/field_analysis/jfield_analysis_test.dart

View file

@ -178,12 +178,10 @@ class Class1 {
/*member: Class1.field9b:constant=ListConstant([])*/
var field9b = const [];
/*spec:nnbd-off|prod:nnbd-off|prod:nnbd-sdk.member: Class1.field9c:initial=ListConstant(<int>[IntConstant(0), IntConstant(1)])*/
/*spec:nnbd-sdk.member: Class1.field9c:initial=ListConstant(<int*>[IntConstant(0), IntConstant(1)])*/
/*spec.member: Class1.field9c:initial=ListConstant(<int*>[IntConstant(0), IntConstant(1)])*/
var field9c = const [0, 1];
/*spec:nnbd-off|prod:nnbd-off|prod:nnbd-sdk.member: Class1.field9d:constant=ListConstant(<int>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
/*spec:nnbd-sdk.member: Class1.field9d:constant=ListConstant(<int*>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
/*spec.member: Class1.field9d:constant=ListConstant(<int*>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
var field9d = const [0, 1, 2];
/*member: Class1.field10a:initial=MapConstant({})*/
@ -192,12 +190,10 @@ class Class1 {
/*member: Class1.field10b:constant=MapConstant({})*/
var field10b = const {};
/*spec:nnbd-off|prod:nnbd-off|prod:nnbd-sdk.member: Class1.field10c:initial=MapConstant(<int, int>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
/*spec:nnbd-sdk.member: Class1.field10c:initial=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
/*spec.member: Class1.field10c:initial=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
var field10c = const {0: 1, 2: 3};
/*spec:nnbd-off|prod:nnbd-off|prod:nnbd-sdk.member: Class1.field10d:constant=MapConstant(<int, int>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
/*spec:nnbd-sdk.member: Class1.field10d:constant=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
/*spec.member: Class1.field10d:constant=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
var field10d = const {0: 1, 2: 3, 4: 5};
/*member: Class1.field11a:initial=ConstructedConstant(Symbol(_name=StringConstant("foo")))*/
@ -274,12 +270,10 @@ class Class2 {
/*member: Class2.field9b:constant=ListConstant([])*/
var field9b;
/*spec:nnbd-off|prod:nnbd-off|prod:nnbd-sdk.member: Class2.field9c:initial=ListConstant(<int>[IntConstant(0), IntConstant(1)])*/
/*spec:nnbd-sdk.member: Class2.field9c:initial=ListConstant(<int*>[IntConstant(0), IntConstant(1)])*/
/*spec.member: Class2.field9c:initial=ListConstant(<int*>[IntConstant(0), IntConstant(1)])*/
var field9c;
/*spec:nnbd-off|prod:nnbd-off|prod:nnbd-sdk.member: Class2.field9d:constant=ListConstant(<int>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
/*spec:nnbd-sdk.member: Class2.field9d:constant=ListConstant(<int*>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
/*spec.member: Class2.field9d:constant=ListConstant(<int*>[IntConstant(0), IntConstant(1), IntConstant(2)])*/
var field9d;
/*member: Class2.field10a:initial=MapConstant({})*/
@ -288,12 +282,10 @@ class Class2 {
/*member: Class2.field10b:constant=MapConstant({})*/
var field10b;
/*spec:nnbd-off|prod:nnbd-off|prod:nnbd-sdk.member: Class2.field10c:initial=MapConstant(<int, int>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
/*spec:nnbd-sdk.member: Class2.field10c:initial=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
/*spec.member: Class2.field10c:initial=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3)})*/
var field10c;
/*spec:nnbd-off|prod:nnbd-off|prod:nnbd-sdk.member: Class2.field10d:constant=MapConstant(<int, int>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
/*spec:nnbd-sdk.member: Class2.field10d:constant=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
/*spec.member: Class2.field10d:constant=MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), IntConstant(2): IntConstant(3), IntConstant(4): IntConstant(5)})*/
var field10d;
/*member: Class2.field11a:initial=ConstructedConstant(Symbol(_name=StringConstant("foo")))*/

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/field_analysis/kfield_analysis_test.dart
prod:nnbd-off=pkg/compiler/test/field_analysis/kfield_analysis_test.dart
spec:nnbd-sdk=pkg/compiler/test/field_analysis/kfield_analysis_test.dart
prod:nnbd-sdk=pkg/compiler/test/field_analysis/kfield_analysis_test.dart
spec=pkg/compiler/test/field_analysis/kfield_analysis_test.dart
prod=pkg/compiler/test/field_analysis/kfield_analysis_test.dart

View file

@ -9,7 +9,6 @@ import 'package:compiler/src/commandline_options.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/elements/types.dart';
import 'package:expect/expect.dart';
import '../helpers/memory_compiler.dart';
import '../helpers/type_test_helper.dart';
const List<FunctionTypeData> existentialTypeData = const <FunctionTypeData>[
@ -208,35 +207,7 @@ main() {
all.forEach(print);
List<ToStringTestData> toStringExpectedPreNnbd = [
ToStringTestData(F1, 'void Function<#A>(#A)'),
ToStringTestData(F2, 'void Function<#A>(#A)'),
ToStringTestData(F3, 'void Function<#A,#B>(#A,#B)'),
ToStringTestData(F4, 'void Function<#A,#B>(#B,#A)'),
ToStringTestData(F5, 'void Function<#A extends num>(#A)'),
ToStringTestData(F6, 'void Function<#A extends int>(#A)'),
ToStringTestData(F7, 'void Function<#A extends num>(#A,[int])'),
ToStringTestData(F8, '#A Function<#A extends num>(#A)'),
ToStringTestData(F9, 'void Function<#A extends #B,#B>(#A,#B)'),
ToStringTestData(F10, 'void Function<#A extends #B,#B>(#A,#B)'),
ToStringTestData(F11, 'void Function<#A extends C3<#A>>(#A)'),
ToStringTestData(F12, 'void Function<#A extends C3<#A>>(#A)'),
ToStringTestData(F13, '#A Function<#A>(#A,#A)'),
ToStringTestData(F14, '#A Function<#A>(#A,#A)'),
ToStringTestData(
F15, 'Map<C5.T,#A> Function<#A extends #B,#B extends C5.T>(#A,#B)'),
ToStringTestData(
F16, 'Map<C5.T,#A> Function<#A extends C5.T,#B extends #A>(#A,#B)'),
ToStringTestData(F17,
'C5.T Function<#A extends List<#B>,#B extends Map<C5.T,#A>>(#A,#B,Object)'),
ToStringTestData(
F18,
'C5.T Function<#A extends C5.T>(['
'#A2 Function<#A2 extends #A>(#A,#A2,C5.T),'
'#A3 Function<#A3 extends #A>(#A,#A3,C5.T)])'),
];
List<ToStringTestData> toStringExpectedNnbdWeak = [
List<ToStringTestData> toStringExpected = [
ToStringTestData(F1, 'void Function<#A>(#A*)*'),
ToStringTestData(F2, 'void Function<#A>(#A*)*'),
ToStringTestData(F3, 'void Function<#A,#B>(#A*,#B*)*'),
@ -266,8 +237,6 @@ main() {
'#A3* Function<#A3 extends #A*>(#A*,#A3*,C5.T*)*])'),
];
List<ToStringTestData> toStringExpected =
isDart2jsNnbd ? toStringExpectedNnbdWeak : toStringExpectedPreNnbd;
for (var test in toStringExpected) {
testToString(test.type, test.expected);
}
@ -291,26 +260,7 @@ main() {
testBounds(F13, [Object_]);
testBounds(F14, [Object_]);
List<InstantiateTestData> instantiateExpectedPreNnbd = [
InstantiateTestData(F1, [C1], 'void Function(C1)'),
InstantiateTestData(F2, [C2], 'void Function(C2)'),
InstantiateTestData(F3, [C1, C2], 'void Function(C1,C2)'),
InstantiateTestData(F4, [C1, C2], 'void Function(C2,C1)'),
InstantiateTestData(F5, [num_], 'void Function(num)'),
InstantiateTestData(F6, [int_], 'void Function(int)'),
InstantiateTestData(F7, [int_], 'void Function(int,[int])'),
InstantiateTestData(F8, [int_], 'int Function(int)'),
InstantiateTestData(F9, [int_, num_], 'void Function(int,num)'),
InstantiateTestData(F10, [int_, num_], 'void Function(int,num)'),
InstantiateTestData(F11, [C4], 'void Function(C4)'),
InstantiateTestData(F12, [C4], 'void Function(C4)'),
InstantiateTestData(F13, [C1], 'C1 Function(C1,C1)'),
InstantiateTestData(F14, [C2], 'C2 Function(C2,C2)'),
InstantiateTestData(F15, [int_, num_], 'Map<C5.T,int> Function(int,num)'),
InstantiateTestData(F16, [num_, int_], 'Map<C5.T,num> Function(num,int)'),
];
List<InstantiateTestData> instantiateExpectedNnbdWeak = [
List<InstantiateTestData> instantiateExpected = [
InstantiateTestData(F1, [C1], 'void Function(C1*)'),
InstantiateTestData(F2, [C2], 'void Function(C2*)'),
InstantiateTestData(F3, [C1, C2], 'void Function(C1*,C2*)'),
@ -331,30 +281,11 @@ main() {
F16, [num_, int_], 'Map<C5.T*,num*>* Function(num*,int*)'),
];
List<InstantiateTestData> instantiateExpected = isDart2jsNnbd
? instantiateExpectedNnbdWeak
: instantiateExpectedPreNnbd;
for (var test in instantiateExpected) {
testInstantiate(test.type, test.instantiation, test.expected);
}
List<SubstTestData> substExpectedPreNnbd = [
SubstTestData([num_], [C5_T], F15,
'Map<num,#A> Function<#A extends #B,#B extends num>(#A,#B)'),
SubstTestData([num_], [C5_T], F16,
'Map<num,#A> Function<#A extends num,#B extends #A>(#A,#B)'),
SubstTestData([num_], [C5_T], F17,
'num Function<#A extends List<#B>,#B extends Map<num,#A>>(#A,#B,Object)'),
SubstTestData(
[num_],
[C5_T],
F18,
'num Function<#A extends num>(['
'#A2 Function<#A2 extends #A>(#A,#A2,num),'
'#A3 Function<#A3 extends #A>(#A,#A3,num)])'),
];
List<SubstTestData> substExpectedNnbdWeak = [
List<SubstTestData> substExpected = [
SubstTestData([num_], [C5_T], F15,
'Map<num*,#A*>* Function<#A extends #B*,#B extends num*>(#A*,#B*)'),
SubstTestData([num_], [C5_T], F16,
@ -374,8 +305,6 @@ main() {
'#A3* Function<#A3 extends #A*>(#A*,#A3*,num*)*])'),
];
List<SubstTestData> substExpected =
isDart2jsNnbd ? substExpectedNnbdWeak : substExpectedPreNnbd;
for (var test in substExpected) {
testSubst(test.arguments, test.parameters, test.type, test.expected);
}

View file

@ -10,7 +10,6 @@ import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/elements/types.dart';
import 'package:compiler/src/universe/call_structure.dart';
import 'package:expect/expect.dart';
import '../helpers/memory_compiler.dart';
import '../helpers/type_test_helper.dart';
List<FunctionTypeData> signatures = const <FunctionTypeData>[
@ -37,8 +36,8 @@ main() {
for (FunctionTypeData data in signatures) {
DartType functionType = env.getElementType('t${data.name}');
Expect.isTrue(functionType is! LegacyType ||
(env.options.useLegacySubtyping && isDart2jsNnbd));
Expect.isTrue(
functionType is! LegacyType || env.options.useLegacySubtyping);
functionType = functionType.withoutNullability;
FunctionEntity method = env.getElement('m${data.name}');
FunctionType methodType = env.getElementType('m${data.name}');

View file

@ -26,9 +26,6 @@ export 'output_collector.dart';
export 'package:compiler/compiler_new.dart' show CompilationResult;
export 'diagnostic_helper.dart';
bool isDart2jsNnbd =
!Platform.environment['DART_CONFIGURATION'].endsWith('Legacy');
String sdkPath = 'sdk/lib';
String sdkLibrariesSpecificationPath = '$sdkPath/libraries.json';

View file

@ -63,9 +63,7 @@ class TypeEnvironment {
TypeEnvironment._(Compiler this.compiler, {this.testBackendWorld: false});
DartType legacyWrap(DartType type) {
return memory.isDart2jsNnbd && options.useLegacySubtyping
? types.legacyType(type)
: type;
return options.useLegacySubtyping ? types.legacyType(type) : type;
}
ElementEnvironment get elementEnvironment {

View file

@ -11,47 +11,7 @@ main() {
promoted(null);
}
/*spec:nnbd-off.member: explicitAs:
dynamic=[String.length],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
param:String]
*/
/*spec:nnbd-sdk.member: explicitAs:
/*member: explicitAs:
dynamic=[String.length],
static=[
Rti._bind(1),
@ -100,47 +60,7 @@ explicitAs(String i) {
return i as String;
}
/*spec:nnbd-off.member: implicitAs:
dynamic=[String.length],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
param:String]
*/
/*spec:nnbd-sdk.member: implicitAs:
/*member: implicitAs:
dynamic=[String.length],
static=[
Rti._bind(1),
@ -190,48 +110,7 @@ String implicitAs(String i) {
return j;
}
/*spec:nnbd-off.member: promoted:
dynamic=[String.length],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
is:String]
*/
/*spec:nnbd-sdk.member: promoted:
/*member: promoted:
dynamic=[String.length],
static=[
Rti._bind(1),

View file

@ -201,59 +201,7 @@ testAnonymousAsyncStar() {
return () async* {};
}
/*spec:nnbd-off.member: testAsyncForIn:
dynamic=[
_StreamIterator.cancel(0),
_StreamIterator.current,
_StreamIterator.moveNext(0)],
static=[
Rti._bind(1),
Rti._eval(1),
StreamIterator.(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_asyncAwait(2),
_asyncRethrow(2),
_asyncReturn(2),
_asyncStartSync(2),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
_makeAsyncAwaitCompleter<dynamic>(0),
_wrapJsFunctionForAsync(1),
findType(1),
instanceType(1)],
type=[
impl:Stream<dynamic>,
inst:Closure,
inst:JSBool,
inst:JSNull,
inst:Null]
*/
/*spec:nnbd-sdk.member: testAsyncForIn:
/*member: testAsyncForIn:
dynamic=[
_StreamIterator.cancel(0),
_StreamIterator.current,
@ -313,60 +261,7 @@ testAsyncForIn(o) async {
await for (var e in o) {}
}
/*spec:nnbd-off.member: testAsyncForInTyped:
dynamic=[
_StreamIterator.cancel(0),
_StreamIterator.current,
_StreamIterator.moveNext(0)],
static=[
Rti._bind(1),
Rti._eval(1),
StreamIterator.(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_asyncAwait(2),
_asyncRethrow(2),
_asyncReturn(2),
_asyncStartSync(2),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
_makeAsyncAwaitCompleter<dynamic>(0),
_wrapJsFunctionForAsync(1),
findType(1),
instanceType(1)],
type=[
impl:Stream<dynamic>,
impl:int,
inst:Closure,
inst:JSBool,
inst:JSNull,
inst:Null]
*/
/*spec:nnbd-sdk.member: testAsyncForInTyped:
/*member: testAsyncForInTyped:
dynamic=[
_StreamIterator.cancel(0),
_StreamIterator.current,

View file

@ -139,47 +139,7 @@ class ForwardingConstructorClass = ForwardingConstructorSuperClass
testForwardingConstructor() => new ForwardingConstructorClass(null);
class ForwardingConstructorTypedSuperClass {
/*spec:nnbd-off.member: ForwardingConstructorTypedSuperClass.:
static=[
Object.(0),
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
param:int]
*/
/*spec:nnbd-sdk.member: ForwardingConstructorTypedSuperClass.:
/*member: ForwardingConstructorTypedSuperClass.:
static=[
Object.(0),
Rti._bind(1),
@ -235,53 +195,7 @@ class ForwardingConstructorTypedClass = ForwardingConstructorTypedSuperClass
testForwardingConstructorTyped() => new ForwardingConstructorTypedClass(null);
class ForwardingConstructorGenericSuperClass<T> {
/*spec:nnbd-off.member: ForwardingConstructorGenericSuperClass.:
static=[
Object.(0),
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
param:ForwardingConstructorGenericSuperClass.T]
*/
/*spec:nnbd-sdk.member: ForwardingConstructorGenericSuperClass.:
/*member: ForwardingConstructorGenericSuperClass.:
static=[
Object.(0),
Rti._bind(1),
@ -364,54 +278,7 @@ enum Enum { A }
*/
testEnum() => Enum.A;
/*spec:nnbd-off.member: staticGenericMethod:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
inst:List<staticGenericMethod.T>,
param:Object,
param:staticGenericMethod.T]
*/
/*spec:nnbd-sdk.member: staticGenericMethod:
/*member: staticGenericMethod:
static=[
Rti._bind(1),
Rti._eval(1),
@ -463,11 +330,7 @@ testEnum() => Enum.A;
*/
List<T> staticGenericMethod<T>(T arg) => [arg];
/*spec:nnbd-off.member: testStaticGenericMethod:
static=[staticGenericMethod<bool>(1)],
type=[inst:JSBool]
*/
/*spec:nnbd-sdk.member: testStaticGenericMethod:
/*member: testStaticGenericMethod:
static=[staticGenericMethod<bool*>(1)],
type=[inst:JSBool]
*/
@ -475,14 +338,7 @@ testStaticGenericMethod() {
staticGenericMethod<bool>(true);
}
/*spec:nnbd-off.member: testInstanceGenericMethod:
dynamic=[exact:GenericClass.genericMethod<bool>(1)],
static=[
GenericClass.generative(0),
checkTypeBound(4)],
type=[inst:JSBool]
*/
/*spec:nnbd-sdk.member: testInstanceGenericMethod:
/*member: testInstanceGenericMethod:
dynamic=[exact:GenericClass.genericMethod<bool*>(1)],
static=[
GenericClass.generative(0),
@ -528,55 +384,7 @@ class Class {
class GenericClass<X, Y> {
const GenericClass.generative();
/*spec:nnbd-off.member: GenericClass.genericMethod:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
inst:Map<GenericClass.X,genericMethod.T>,
param:Object,
param:genericMethod.T]
*/
/*spec:nnbd-sdk.member: GenericClass.genericMethod:
/*member: GenericClass.genericMethod:
static=[
Rti._bind(1),
Rti._eval(1),

View file

@ -44,53 +44,7 @@ const instanceConstantField = const Class(true, false);
const typeLiteralField = String;
/*spec:nnbd-off.member: id:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
param:Object,
param:id.T]
*/
/*spec:nnbd-sdk.member: id:
/*member: id:
static=[
Rti._bind(1),
Rti._eval(1),

View file

@ -91,10 +91,7 @@ stringLiteral() {
/*member: symbolLiteral:static=[Symbol.(1)],type=[inst:Symbol]*/
symbolLiteral() => #foo;
/*spec:nnbd-off.member: listLiteral:type=[
inst:JSBool,
inst:List<bool>]*/
/*spec:nnbd-sdk.member: listLiteral:type=[
/*member: listLiteral:type=[
inst:JSBool,
inst:List<bool*>]*/
listLiteral() => const [true, false];
@ -114,16 +111,7 @@ setLiteral() => const {true, false};
*/
instanceConstant() => const Class(true, false);
/*spec:nnbd-off.member: typeLiteral:
static=[
createRuntimeType(1),
typeLiteral(1)],
type=[
inst:Type,
inst:_Type,
lit:String]
*/
/*spec:nnbd-sdk.member: typeLiteral:
/*member: typeLiteral:
static=[
createRuntimeType(1),
typeLiteral(1)],
@ -173,10 +161,7 @@ stringLiteralRef() => stringLiteralField;
/*member: symbolLiteralRef:static=[Symbol.(1)],type=[inst:Symbol]*/
symbolLiteralRef() => symbolLiteralField;
/*spec:nnbd-off.member: listLiteralRef:type=[
inst:JSBool,
inst:List<bool>]*/
/*spec:nnbd-sdk.member: listLiteralRef:type=[
/*member: listLiteralRef:type=[
inst:JSBool,
inst:List<bool*>]*/
listLiteralRef() => listLiteralField;
@ -196,16 +181,7 @@ setLiteralRef() => setLiteralField;
*/
instanceConstantRef() => instanceConstantField;
/*spec:nnbd-off.member: typeLiteralRef:
static=[
createRuntimeType(1),
typeLiteral(1)],
type=[
inst:Type,
inst:_Type,
lit:String]
*/
/*spec:nnbd-sdk.member: typeLiteralRef:
/*member: typeLiteralRef:
static=[
createRuntimeType(1),
typeLiteral(1)],
@ -245,10 +221,7 @@ stringLiteralDeferred() => defer.stringLiteralField;
symbolLiteralDeferred() => defer.symbolLiteralField;
// TODO(johnniwinther): Should we record that this is deferred?
/*spec:nnbd-off.member: listLiteralDeferred:type=[
inst:JSBool,
inst:List<bool>]*/
/*spec:nnbd-sdk.member: listLiteralDeferred:type=[
/*member: listLiteralDeferred:type=[
inst:JSBool,
inst:List<bool*>]*/
listLiteralDeferred() => defer.listLiteralField;
@ -271,16 +244,7 @@ setLiteralDeferred() => defer.setLiteralField;
*/
instanceConstantDeferred() => defer.instanceConstantField;
/*spec:nnbd-off.member: typeLiteralDeferred:
static=[
createRuntimeType(1),
typeLiteral(1)],
type=[
inst:Type,
inst:_Type,
lit:String{defer}]
*/
/*spec:nnbd-sdk.member: typeLiteralDeferred:
/*member: typeLiteralDeferred:
static=[
createRuntimeType(1),
typeLiteral(1)],

View file

@ -117,8 +117,7 @@ testConstRedirectingFactoryInvoke() {
const Class.redirect();
}
/*spec:nnbd-off.member: testConstRedirectingFactoryInvokeGeneric:type=[const:GenericClass<int,String>]*/
/*spec:nnbd-sdk.member: testConstRedirectingFactoryInvokeGeneric:type=[const:GenericClass<int*,String*>]*/
/*member: testConstRedirectingFactoryInvokeGeneric:type=[const:GenericClass<int*,String*>]*/
testConstRedirectingFactoryInvokeGeneric() {
const GenericClass<int, String>.redirect();
}
@ -161,47 +160,7 @@ class GenericClass<X, Y> {
/*member: GenericClass.generative:static=[Object.(0)]*/
const GenericClass.generative();
/*spec:nnbd-off.member: GenericClass.fact:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:Object]
*/
/*spec:nnbd-sdk.member: GenericClass.fact:
/*member: GenericClass.fact:
static=[
Rti._bind(1),
Rti._eval(1),

View file

@ -69,56 +69,7 @@ notEffectivelyFinalList() {
/*member: _method1:type=[inst:JSNull]*/
num _method1() => null;
/*spec:nnbd-off.member: effectivelyFinalPromoted:
dynamic=[
int.+,
num.+],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
_method1(0),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSDouble,
inst:JSInt,
inst:JSNumber,
inst:JSPositiveInt,
inst:JSUInt31,
inst:JSUInt32,
is:int]
*/
/*spec:nnbd-sdk.member: effectivelyFinalPromoted:
/*member: effectivelyFinalPromoted:
dynamic=[
int.+,
num.+],
@ -181,57 +132,7 @@ effectivelyFinalPromoted() {
/*member: _method2:type=[inst:JSNull]*/
String _method2() => null;
/*spec:nnbd-off.member: effectivelyFinalPromotedInvalid:
dynamic=[
String.+,
int.+],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
_method2(0),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSDouble,
inst:JSInt,
inst:JSNumber,
inst:JSPositiveInt,
inst:JSString,
inst:JSUInt31,
inst:JSUInt32,
is:int]
*/
/*spec:nnbd-sdk.member: effectivelyFinalPromotedInvalid:
/*member: effectivelyFinalPromotedInvalid:
dynamic=[
String.+,
int.+],

View file

@ -107,47 +107,7 @@ testPreInc(o) => ++o;
*/
testPreDec(o) => --o;
/*spec:nnbd-off.member: testIs:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
is:Class]
*/
/*spec:nnbd-sdk.member: testIs:
/*member: testIs:
static=[
Rti._bind(1),
Rti._eval(1),
@ -192,53 +152,7 @@ testPreDec(o) => --o;
*/
testIs() => null is Class;
/*spec:nnbd-off.member: testIsGeneric:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
is:GenericClass<int,String>]
*/
/*spec:nnbd-sdk.member: testIsGeneric:
/*member: testIsGeneric:
static=[
Rti._bind(1),
Rti._eval(1),
@ -289,47 +203,7 @@ testIs() => null is Class;
*/
testIsGeneric() => null is GenericClass<int, String>;
/*spec:nnbd-off.member: testIsGenericRaw:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
is:GenericClass<dynamic,dynamic>]
*/
/*spec:nnbd-sdk.member: testIsGenericRaw:
/*member: testIsGenericRaw:
static=[
Rti._bind(1),
Rti._eval(1),
@ -374,47 +248,7 @@ testIsGeneric() => null is GenericClass<int, String>;
*/
testIsGenericRaw() => null is GenericClass;
/*spec:nnbd-off.member: testIsGenericDynamic:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
is:GenericClass<dynamic,dynamic>]
*/
/*spec:nnbd-sdk.member: testIsGenericDynamic:
/*member: testIsGenericDynamic:
static=[
Rti._bind(1),
Rti._eval(1),
@ -459,47 +293,7 @@ testIsGenericRaw() => null is GenericClass;
*/
testIsGenericDynamic() => null is GenericClass<dynamic, dynamic>;
/*spec:nnbd-off.member: testIsNot:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
is:Class]
*/
/*spec:nnbd-sdk.member: testIsNot:
/*member: testIsNot:
static=[
Rti._bind(1),
Rti._eval(1),
@ -544,53 +338,7 @@ testIsGenericDynamic() => null is GenericClass<dynamic, dynamic>;
*/
testIsNot() => null is! Class;
/*spec:nnbd-off.member: testIsNotGeneric:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
is:GenericClass<int,String>]
*/
/*spec:nnbd-sdk.member: testIsNotGeneric:
/*member: testIsNotGeneric:
static=[
Rti._bind(1),
Rti._eval(1),
@ -641,47 +389,7 @@ testIsNot() => null is! Class;
*/
testIsNotGeneric() => null is! GenericClass<int, String>;
/*spec:nnbd-off.member: testIsNotGenericRaw:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
is:GenericClass<dynamic,dynamic>]
*/
/*spec:nnbd-sdk.member: testIsNotGenericRaw:
/*member: testIsNotGenericRaw:
static=[
Rti._bind(1),
Rti._eval(1),
@ -726,47 +434,7 @@ testIsNotGeneric() => null is! GenericClass<int, String>;
*/
testIsNotGenericRaw() => null is! GenericClass;
/*spec:nnbd-off.member: testIsNotGenericDynamic:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
is:GenericClass<dynamic,dynamic>]
*/
/*spec:nnbd-sdk.member: testIsNotGenericDynamic:
/*member: testIsNotGenericDynamic:
static=[
Rti._bind(1),
Rti._eval(1),
@ -811,53 +479,7 @@ testIsNotGenericRaw() => null is! GenericClass;
*/
testIsNotGenericDynamic() => null is! GenericClass<dynamic, dynamic>;
/*spec:nnbd-off.member: testIsTypedef:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
is:dynamic Function()]
*/
/*spec:nnbd-sdk.member: testIsTypedef:
/*member: testIsTypedef:
static=[
Rti._bind(1),
Rti._eval(1),
@ -908,53 +530,7 @@ testIsNotGenericDynamic() => null is! GenericClass<dynamic, dynamic>;
*/
testIsTypedef() => null is Typedef;
/*spec:nnbd-off.member: testIsTypedefGeneric:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
is:int Function(String)]
*/
/*spec:nnbd-sdk.member: testIsTypedefGeneric:
/*member: testIsTypedefGeneric:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1005,53 +581,7 @@ testIsTypedef() => null is Typedef;
*/
testIsTypedefGeneric() => null is GenericTypedef<int, String>;
/*spec:nnbd-off.member: testIsTypedefGenericRaw:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
is:dynamic Function(dynamic)]
*/
/*spec:nnbd-sdk.member: testIsTypedefGenericRaw:
/*member: testIsTypedefGenericRaw:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1102,53 +632,7 @@ testIsTypedefGeneric() => null is GenericTypedef<int, String>;
*/
testIsTypedefGenericRaw() => null is GenericTypedef;
/*spec:nnbd-off.member: testIsTypedefGenericDynamic:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
is:dynamic Function(dynamic)]
*/
/*spec:nnbd-sdk.member: testIsTypedefGenericDynamic:
/*member: testIsTypedefGenericDynamic:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1199,53 +683,7 @@ testIsTypedefGenericRaw() => null is GenericTypedef;
*/
testIsTypedefGenericDynamic() => null is GenericTypedef<dynamic, dynamic>;
/*spec:nnbd-off.member: testIsTypedefDeep:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
is:List<int Function(dynamic Function(dynamic))>]
*/
/*spec:nnbd-sdk.member: testIsTypedefDeep:
/*member: testIsTypedefDeep:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1296,46 +734,8 @@ testIsTypedefGenericDynamic() => null is GenericTypedef<dynamic, dynamic>;
*/
testIsTypedefDeep() => null is List<GenericTypedef<int, GenericTypedef>>;
/*spec:nnbd-off.member: testAs:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
as:Class,
inst:Closure,
inst:JSBool]
*/
/*spec:nnbd-sdk.member: testAs:
// ignore: UNNECESSARY_CAST
/*member: testAs:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1377,55 +777,10 @@ testIsTypedefDeep() => null is List<GenericTypedef<int, GenericTypedef>>;
inst:Closure,
inst:JSBool]
*/
// ignore: UNNECESSARY_CAST
testAs(dynamic o) => o as Class;
/*spec:nnbd-off.member: testAsGeneric:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
as:GenericClass<int,String>,
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>]
*/
/*spec:nnbd-sdk.member: testAsGeneric:
// ignore: UNNECESSARY_CAST
/*member: testAsGeneric:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1473,49 +828,10 @@ testAs(dynamic o) => o as Class;
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>]
*/
// ignore: UNNECESSARY_CAST
testAsGeneric(dynamic o) => o as GenericClass<int, String>;
/*spec:nnbd-off.member: testAsGenericRaw:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
as:GenericClass<dynamic,dynamic>,
inst:Closure,
inst:JSBool]
*/
/*spec:nnbd-sdk.member: testAsGenericRaw:
// ignore: UNNECESSARY_CAST
/*member: testAsGenericRaw:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1557,49 +873,10 @@ testAsGeneric(dynamic o) => o as GenericClass<int, String>;
inst:Closure,
inst:JSBool]
*/
// ignore: UNNECESSARY_CAST
testAsGenericRaw(dynamic o) => o as GenericClass;
/*spec:nnbd-off.member: testAsGenericDynamic:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
as:GenericClass<dynamic,dynamic>,
inst:Closure,
inst:JSBool]
*/
/*spec:nnbd-sdk.member: testAsGenericDynamic:
// ignore: UNNECESSARY_CAST
/*member: testAsGenericDynamic:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1641,7 +918,6 @@ testAsGenericRaw(dynamic o) => o as GenericClass;
inst:Closure,
inst:JSBool]
*/
// ignore: UNNECESSARY_CAST
testAsGenericDynamic(dynamic o) => o as GenericClass<dynamic, dynamic>;
/*member: testThrow:
@ -1652,50 +928,7 @@ testThrow() => throw '';
/*member: testIfNotNull:dynamic=[Object.==,foo],type=[inst:JSNull]*/
testIfNotNull(o) => o?.foo;
/*spec:nnbd-off.member: testTypedIfNotNull:
dynamic=[
Class.==,
Class.field],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:Class]
*/
/*spec:nnbd-sdk.member: testTypedIfNotNull:
/*member: testTypedIfNotNull:
dynamic=[
Class.==,
Class.field],

View file

@ -14,56 +14,7 @@ class B<S, U> {}
/*member: C.:static=[Object.(0)]*/
class C implements A<int>, B<String, bool> {}
/*spec:nnbd-off.member: testA:
dynamic=[call<A.T>(0)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
extractTypeArguments<A<dynamic>>(2),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
impl:A<dynamic>,
impl:Function,
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
is:A<A.T>]
*/
/*spec:nnbd-sdk.member: testA:
/*member: testA:
dynamic=[call<A.T>(0)],
static=[
Rti._bind(1),
@ -117,56 +68,7 @@ class C implements A<int>, B<String, bool> {}
*/
testA(c, f) => extractTypeArguments<A>(c, f);
/*spec:nnbd-off.member: testB:
dynamic=[call<B.S,B.U>(0)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
extractTypeArguments<B<dynamic,dynamic>>(2),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
impl:B<dynamic,dynamic>,
impl:Function,
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
is:B<B.S,B.U>]
*/
/*spec:nnbd-sdk.member: testB:
/*member: testB:
dynamic=[call<B.S,B.U>(0)],
static=[
Rti._bind(1),

View file

@ -6,22 +6,8 @@
import "dart:async";
/*spec:nnbd-off.member: main:
dynamic=[runtimeType],
runtimeType=[unknown:FutureOr<int>],
static=[
Future.value(1),
checkTypeBound(4),
print(1)],
type=[
inst:JSDouble,
inst:JSInt,
inst:JSNumber,
inst:JSPositiveInt,
inst:JSUInt31,
inst:JSUInt32]
*/
/*spec:nnbd-sdk.member: main:
@pragma('dart2js:disableFinal')
/*member: main:
dynamic=[runtimeType],
runtimeType=[unknown:FutureOr<int*>*],
static=[
@ -36,7 +22,6 @@ import "dart:async";
inst:JSUInt31,
inst:JSUInt32]
*/
@pragma('dart2js:disableFinal')
void main() {
FutureOr<int> i = new Future<int>.value(0);
print(i.runtimeType);

View file

@ -30,46 +30,7 @@ main() {
testGenericClass();
}
/*spec:nnbd-off.member: testDefaultValuesPositional:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
param:bool]
*/
/*spec:nnbd-sdk.member: testDefaultValuesPositional:
/*member: testDefaultValuesPositional:
static=[
Rti._bind(1),
Rti._eval(1),
@ -113,46 +74,7 @@ main() {
*/
testDefaultValuesPositional([bool value = false]) {}
/*spec:nnbd-off.member: testDefaultValuesNamed:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
param:bool]
*/
/*spec:nnbd-sdk.member: testDefaultValuesNamed:
/*member: testDefaultValuesNamed:
static=[
Rti._bind(1),
Rti._eval(1),
@ -246,46 +168,7 @@ testFieldInitializer3() {
/*member: ClassInstanceFieldWithInitializer.:static=[Object.(0)]*/
class ClassInstanceFieldWithInitializer {
/*spec:nnbd-off.member: ClassInstanceFieldWithInitializer.field:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
param:bool]
*/
/*spec:nnbd-sdk.member: ClassInstanceFieldWithInitializer.field:
/*member: ClassInstanceFieldWithInitializer.field:
static=[
Rti._bind(1),
Rti._eval(1),
@ -335,47 +218,7 @@ testInstanceFieldWithInitializer() => new ClassInstanceFieldWithInitializer();
/*member: ClassInstanceFieldTyped.:static=[Object.(0)]*/
class ClassInstanceFieldTyped {
/*spec:nnbd-off.member: ClassInstanceFieldTyped.field:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:int]
*/
/*spec:nnbd-sdk.member: ClassInstanceFieldTyped.field:
/*member: ClassInstanceFieldTyped.field:
static=[
Rti._bind(1),
Rti._eval(1),
@ -444,53 +287,7 @@ class ClassSuperInitializer extends ClassThisInitializer {
testSuperInitializer() => new ClassSuperInitializer();
class ClassGeneric<T> {
/*spec:nnbd-off.member: ClassGeneric.:
static=[
Object.(0),
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
param:ClassGeneric.T]
*/
/*spec:nnbd-sdk.member: ClassGeneric.:
/*member: ClassGeneric.:
static=[
Object.(0),
Rti._bind(1),

View file

@ -16,47 +16,7 @@ class E {}
/*member: Class1.:static=[Object.(0)]*/
class Class1 {
/*spec:nnbd-off.member: Class1.field1:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:A]
*/
/*spec:nnbd-sdk.member: Class1.field1:
/*member: Class1.field1:
static=[
Rti._bind(1),
Rti._eval(1),
@ -102,48 +62,7 @@ class Class1 {
A field1;
}
/*spec:nnbd-off.member: method1:
dynamic=[Class1.field1=],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
impl:A,
inst:Closure,
inst:JSBool,
is:Class1]
*/
/*spec:nnbd-sdk.member: method1:
/*member: method1:
dynamic=[Class1.field1=],
static=[
Rti._bind(1),
@ -194,53 +113,7 @@ method1(dynamic o, dynamic value) {
/*member: Class2.:static=[Object.(0)]*/
class Class2<T> {
/*spec:nnbd-off.member: Class2.field2:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
param:Class2.T]
*/
/*spec:nnbd-sdk.member: Class2.field2:
/*member: Class2.field2:
static=[
Rti._bind(1),
Rti._eval(1),
@ -292,54 +165,7 @@ class Class2<T> {
T field2;
}
/*spec:nnbd-off.member: method2:
dynamic=[Class2.field2=],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
impl:A,
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
is:Class2<A>]
*/
/*spec:nnbd-sdk.member: method2:
/*member: method2:
dynamic=[Class2.field2=],
static=[
Rti._bind(1),
@ -396,49 +222,7 @@ method2(dynamic o, dynamic value) {
/*member: Class3.:static=[Object.(0)]*/
class Class3 {
/*spec:nnbd-off.member: Class3.method3:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:A,
param:B,
param:C]
*/
/*spec:nnbd-sdk.member: Class3.method3:
/*member: Class3.method3:
static=[
Rti._bind(1),
Rti._eval(1),
@ -486,50 +270,7 @@ class Class3 {
method3(A a, [B b, C c]) {}
}
/*spec:nnbd-off.member: method3:
dynamic=[Class3.method3(3)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
impl:A,
impl:C,
inst:Closure,
inst:JSBool,
is:Class3,
param:B]
*/
/*spec:nnbd-sdk.member: method3:
/*member: method3:
dynamic=[Class3.method3(3)],
static=[
Rti._bind(1),
@ -582,49 +323,7 @@ method3(dynamic o, dynamic a, B b, dynamic c) {
/*member: Class4.:static=[Object.(0)]*/
class Class4 {
/*spec:nnbd-off.member: Class4.method4:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:A,
param:B,
param:C]
*/
/*spec:nnbd-sdk.member: Class4.method4:
/*member: Class4.method4:
static=[
Rti._bind(1),
Rti._eval(1),
@ -672,50 +371,7 @@ class Class4 {
method4(A a, {B b, C c}) {}
}
/*spec:nnbd-off.member: method4:
dynamic=[Class4.method4(1,b,c)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
impl:A,
impl:C,
inst:Closure,
inst:JSBool,
is:Class4,
param:B]
*/
/*spec:nnbd-sdk.member: method4:
/*member: method4:
dynamic=[Class4.method4(1,b,c)],
static=[
Rti._bind(1),
@ -768,58 +424,7 @@ method4(dynamic o, dynamic a, B b, dynamic c) {
/*member: Class5.:static=[Object.(0)]*/
class Class5<T1, T2> {
/*spec:nnbd-off.member: Class5.method5:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
param:C,
param:Class5.T1,
param:Class5.T2,
param:Object,
param:method5.S1,
param:method5.S2]
*/
/*spec:nnbd-sdk.member: Class5.method5:
/*member: Class5.method5:
static=[
Rti._bind(1),
Rti._eval(1),
@ -876,58 +481,7 @@ class Class5<T1, T2> {
method5<S1, S2>(T1 a, [T2 b, C c, S1 d, S2 e]) {}
}
/*spec:nnbd-off.member: method5:
dynamic=[Class5.method5<D,E>(5)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
impl:A,
impl:D,
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
is:Class5<A,B>,
param:B,
param:C,
param:E]
*/
/*spec:nnbd-sdk.member: method5:
/*member: method5:
dynamic=[Class5.method5<D*,E*>(5)],
static=[
Rti._bind(1),
@ -988,58 +542,7 @@ method5(dynamic o, dynamic a, B b, C c, dynamic d, E e) {
/*member: Class6.:static=[Object.(0)]*/
class Class6<T1, T2> {
/*spec:nnbd-off.member: Class6.method6:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
param:C,
param:Class6.T1,
param:Class6.T2,
param:Object,
param:method6.S1,
param:method6.S2]
*/
/*spec:nnbd-sdk.member: Class6.method6:
/*member: Class6.method6:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1096,58 +599,7 @@ class Class6<T1, T2> {
method6<S1, S2>(T1 a, {T2 b, C c, S1 d, S2 e}) {}
}
/*spec:nnbd-off.member: method6:
dynamic=[Class6.method6<D,E>(1,b,c,d,e)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
impl:A,
impl:D,
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
is:Class6<A,B>,
param:B,
param:C,
param:E]
*/
/*spec:nnbd-sdk.member: method6:
/*member: method6:
dynamic=[Class6.method6<D*,E*>(1,b,c,d,e)],
static=[
Rti._bind(1),
@ -1212,50 +664,7 @@ class Class7 {
A Function(A) get f => null;
}
/*spec:nnbd-off.member: method7:
dynamic=[
Class7.f(1),
call(1)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
impl:A,
inst:Closure,
inst:JSBool,
is:Class7]
*/
/*spec:nnbd-sdk.member: method7:
/*member: method7:
dynamic=[
Class7.f(1),
call(1)],
@ -1308,53 +717,7 @@ method7(dynamic o, dynamic a) {
/*member: F.:static=[Object.(0)]*/
class F<T> {
/*spec:nnbd-off.member: F.method:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
param:List<F.T>]
*/
/*spec:nnbd-sdk.member: F.method:
/*member: F.method:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1405,53 +768,7 @@ class F<T> {
*/
T method(List<T> list) => null;
/*spec:nnbd-off.member: F.field:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
param:F.T]
*/
/*spec:nnbd-sdk.member: F.field:
/*member: F.field:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1506,56 +823,7 @@ class F<T> {
/*member: G.:static=[F.(0)]*/
class G extends F<int> {}
/*spec:nnbd-off.member: method8:
dynamic=[G.method(1)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
impl:List<int>,
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
is:G,
param:Iterable<int>]
*/
/*spec:nnbd-sdk.member: method8:
/*member: method8:
dynamic=[G.method(1)],
static=[
Rti._bind(1),
@ -1612,50 +880,7 @@ method8(dynamic g, Iterable<int> iterable) {
return g.method(iterable);
}
/*spec:nnbd-off.member: method9:
dynamic=[G.field=],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
impl:int,
inst:Closure,
inst:JSBool,
inst:JSNull,
is:G,
param:num]
*/
/*spec:nnbd-sdk.member: method9:
/*member: method9:
dynamic=[G.field=],
static=[
Rti._bind(1),

View file

@ -117,46 +117,7 @@ testTopLevelInvoke() {
topLevelFunction3(15, c: 16, b: 17);
}
/*spec:nnbd-off.member: topLevelFunction1Typed:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
param:int]
*/
/*spec:nnbd-sdk.member: topLevelFunction1Typed:
/*member: topLevelFunction1Typed:
static=[
Rti._bind(1),
Rti._eval(1),
@ -200,49 +161,7 @@ testTopLevelInvoke() {
*/
void topLevelFunction1Typed(int a) {}
/*spec:nnbd-off.member: topLevelFunction2Typed:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:String,
param:double,
param:num]
*/
/*spec:nnbd-sdk.member: topLevelFunction2Typed:
/*member: topLevelFunction2Typed:
static=[
Rti._bind(1),
Rti._eval(1),
@ -289,55 +208,7 @@ void topLevelFunction1Typed(int a) {}
*/
int topLevelFunction2Typed(String a, [num b, double c]) => null;
/*spec:nnbd-off.member: topLevelFunction3Typed:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
param:List<int>,
param:Map<String,bool>,
param:bool]
*/
/*spec:nnbd-sdk.member: topLevelFunction3Typed:
/*member: topLevelFunction3Typed:
static=[
Rti._bind(1),
Rti._eval(1),
@ -392,31 +263,7 @@ double topLevelFunction3Typed(bool a, {List<int> b, Map<String, bool> c}) {
return null;
}
/*spec:nnbd-off.member: testTopLevelInvokeTyped:
static=[
topLevelFunction1Typed(1),
topLevelFunction2Typed(1),
topLevelFunction2Typed(2),
topLevelFunction2Typed(3),
topLevelFunction3Typed(1),
topLevelFunction3Typed(1,b),
topLevelFunction3Typed(1,b,c),
topLevelFunction3Typed(1,b,c),
topLevelFunction3Typed(1,c)],
type=[
inst:JSBool,
inst:JSDouble,
inst:JSInt,
inst:JSNull,
inst:JSNumber,
inst:JSPositiveInt,
inst:JSString,
inst:JSUInt31,
inst:JSUInt32,
inst:List<int>,
inst:Map<String,bool>]
*/
/*spec:nnbd-sdk.member: testTopLevelInvokeTyped:
/*member: testTopLevelInvokeTyped:
static=[
topLevelFunction1Typed(1),
topLevelFunction2Typed(1),
@ -452,52 +299,7 @@ testTopLevelInvokeTyped() {
topLevelFunction3Typed(false, c: {'16': false}, b: [17]);
}
/*spec:nnbd-off.member: topLevelFunctionTyped1:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
param:void Function(num)]
*/
/*spec:nnbd-sdk.member: topLevelFunctionTyped1:
/*member: topLevelFunctionTyped1:
static=[
Rti._bind(1),
Rti._eval(1),
@ -547,52 +349,7 @@ testTopLevelInvokeTyped() {
*/
topLevelFunctionTyped1(void a(num b)) {}
/*spec:nnbd-off.member: topLevelFunctionTyped2:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
param:void Function(num,[String])]
*/
/*spec:nnbd-sdk.member: topLevelFunctionTyped2:
/*member: topLevelFunctionTyped2:
static=[
Rti._bind(1),
Rti._eval(1),
@ -642,52 +399,7 @@ topLevelFunctionTyped1(void a(num b)) {}
*/
topLevelFunctionTyped2(void a(num b, [String c])) {}
/*spec:nnbd-off.member: topLevelFunctionTyped3:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
param:void Function(num,{String c,int d})]
*/
/*spec:nnbd-sdk.member: topLevelFunctionTyped3:
/*member: topLevelFunctionTyped3:
static=[
Rti._bind(1),
Rti._eval(1),
@ -737,52 +449,7 @@ topLevelFunctionTyped2(void a(num b, [String c])) {}
*/
topLevelFunctionTyped3(void a(num b, {String c, int d})) {}
/*spec:nnbd-off.member: topLevelFunctionTyped4:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
param:void Function(num,{int c,String d})]
*/
/*spec:nnbd-sdk.member: topLevelFunctionTyped4:
/*member: topLevelFunctionTyped4:
static=[
Rti._bind(1),
Rti._eval(1),
@ -868,46 +535,7 @@ set topLevelSetter(_) {}
/*member: testTopLevelSetterSet:static=[set:topLevelSetter],type=[inst:JSNull]*/
testTopLevelSetterSet() => topLevelSetter = null;
/*spec:nnbd-off.member: topLevelSetterTyped=:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
param:int]
*/
/*spec:nnbd-sdk.member: topLevelSetterTyped=:
/*member: topLevelSetterTyped=:
static=[
Rti._bind(1),
Rti._eval(1),
@ -977,47 +605,7 @@ final topLevelFieldFinal = topLevelFunction1(null);
/*member: testTopLevelFieldFinal:static=[topLevelFieldFinal]*/
testTopLevelFieldFinal() => topLevelFieldFinal;
/*spec:nnbd-off.member: topLevelFieldTyped:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:int]
*/
/*spec:nnbd-sdk.member: topLevelFieldTyped:
/*member: topLevelFieldTyped:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1065,47 +653,7 @@ int topLevelFieldTyped;
/*member: testTopLevelFieldTyped:static=[topLevelFieldTyped]*/
testTopLevelFieldTyped() => topLevelFieldTyped;
/*spec:nnbd-off.member: topLevelFieldGeneric1:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:GenericClass<dynamic,dynamic>]
*/
/*spec:nnbd-sdk.member: topLevelFieldGeneric1:
/*member: topLevelFieldGeneric1:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1153,47 +701,7 @@ GenericClass topLevelFieldGeneric1;
/*member: testTopLevelFieldGeneric1:static=[topLevelFieldGeneric1]*/
testTopLevelFieldGeneric1() => topLevelFieldGeneric1;
/*spec:nnbd-off.member: topLevelFieldGeneric2:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
param:GenericClass<dynamic,dynamic>]
*/
/*spec:nnbd-sdk.member: topLevelFieldGeneric2:
/*member: topLevelFieldGeneric2:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1241,53 +749,7 @@ GenericClass<dynamic, dynamic> topLevelFieldGeneric2;
/*member: testTopLevelFieldGeneric2:static=[topLevelFieldGeneric2]*/
testTopLevelFieldGeneric2() => topLevelFieldGeneric2;
/*spec:nnbd-off.member: topLevelFieldGeneric3:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
param:GenericClass<int,String>]
*/
/*spec:nnbd-sdk.member: topLevelFieldGeneric3:
/*member: topLevelFieldGeneric3:
static=[
Rti._bind(1),
Rti._eval(1),
@ -1457,55 +919,7 @@ testLocalFunction() {
localFunction() {}
}
/*spec:nnbd-off.member: testLocalFunctionTyped:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
def:localFunction,
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:Function,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
param:String]
*/
/*spec:nnbd-sdk.member: testLocalFunctionTyped:
/*member: testLocalFunctionTyped:
static=[
Rti._bind(1),
Rti._eval(1),

View file

@ -61,53 +61,7 @@ typedef void Callback<T>(T value);
/*member: GenericClass.:static=[JavaScriptObject.(0)]*/
@JS()
class GenericClass<T> {
/*spec:nnbd-off.member: GenericClass.method:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSNull,
inst:JSUnmodifiableArray<dynamic>,
param:void Function(GenericClass.T)]
*/
/*spec:nnbd-sdk.member: GenericClass.method:
/*member: GenericClass.method:
static=[
Rti._bind(1),
Rti._eval(1),

View file

@ -11,57 +11,8 @@ import 'dart:html' show File;
import 'package:js/js.dart';
/*spec:nnbd-off.member: foo=:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
native:ApplicationCacheErrorEvent,
native:DomError,
native:DomException,
native:ErrorEvent,
native:MediaError,
native:NavigatorUserMediaError,
native:OverconstrainedError,
native:PositionError,
native:SensorErrorEvent,
native:SpeechRecognitionError,
native:SqlError,
param:Function]
*/
/*spec:nnbd-sdk.member: foo=:
@JS()
/*member: foo=:
static=[
Rti._bind(1),
Rti._eval(1),
@ -114,57 +65,9 @@ import 'package:js/js.dart';
native:SqlError,
param:Function*]
*/
@JS()
external set foo(Function f);
/*spec:nnbd-off.member: _doStuff:
dynamic=[
File.==,
File.name],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
defineProperty(3),
findType(1),
instanceType(1),
print(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
inst:JSString,
param:File,
param:String]
*/
/*spec:nnbd-sdk.member: _doStuff:
/*member: _doStuff:
dynamic=[
File.==,
File.name],
@ -221,11 +124,7 @@ void _doStuff(String name, File file) {
print(file.name);
}
/*spec:nnbd-off.member: main:static=[
_doStuff,
allowInterop<Function>(1),
set:foo]*/
/*spec:nnbd-sdk.member: main:static=[
/*member: main:static=[
_doStuff,
allowInterop<Function*>(1),
set:foo]*/

View file

@ -11,64 +11,8 @@ import 'dart:html' show File;
import 'package:js/js.dart';
/*spec:nnbd-off.member: foo=:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
setRuntimeTypeInfo(2)],
type=[
inst:Closure,
inst:JSArray<dynamic>,
inst:JSBool,
inst:JSExtendableArray<dynamic>,
inst:JSFixedArray<dynamic>,
inst:JSMutableArray<dynamic>,
inst:JSUnmodifiableArray<dynamic>,
native:ApplicationCacheErrorEvent,
native:DomError,
native:DomException,
native:ErrorEvent,
native:File,
native:MediaError,
native:NavigatorUserMediaError,
native:OverconstrainedError,
native:PositionError,
native:SensorErrorEvent,
native:SpeechRecognitionError,
native:SqlError,
param:void Function(String,File)]
*/
/*spec:nnbd-sdk.member: foo=:
@JS()
/*member: foo=:
static=[
Rti._bind(1),
Rti._eval(1),
@ -128,57 +72,9 @@ import 'package:js/js.dart';
native:SqlError,
param:void Function(String*,File*)*]
*/
@JS()
external set foo(void Function(String, File) f);
/*spec:nnbd-off.member: _doStuff:
dynamic=[
File.==,
File.name],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
defineProperty(3),
findType(1),
instanceType(1),
print(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
inst:JSString,
param:File,
param:String]
*/
/*spec:nnbd-sdk.member: _doStuff:
/*member: _doStuff:
dynamic=[
File.==,
File.name],
@ -235,11 +131,7 @@ void _doStuff(String name, File file) {
print(file.name);
}
/*spec:nnbd-off.member: main:static=[
_doStuff,
allowInterop<void Function(String,File)>(1),
set:foo]*/
/*spec:nnbd-sdk.member: main:static=[
/*member: main:static=[
_doStuff,
allowInterop<void Function(String*,File*)*>(1),
set:foo]*/

View file

@ -131,16 +131,7 @@ testComplexConstSymbol() => const Symbol(complexSymbolField);
/*member: testIfNullConstSymbol:static=[Symbol.(1)],type=[inst:Symbol]*/
testIfNullConstSymbol() => const Symbol(null ?? 'foo');
/*spec:nnbd-off.member: testTypeLiteral:
static=[
createRuntimeType(1),
typeLiteral(1)],
type=[
inst:Type,
inst:_Type,
lit:Object]
*/
/*spec:nnbd-sdk.member: testTypeLiteral:
/*member: testTypeLiteral:
static=[
createRuntimeType(1),
typeLiteral(1)],
@ -160,17 +151,13 @@ testEmptyListLiteral() => [];
/*member: testEmptyListLiteralDynamic:type=[inst:List<dynamic>]*/
testEmptyListLiteralDynamic() => <dynamic>[];
/*spec:nnbd-off.member: testEmptyListLiteralTyped:type=[inst:List<String>]*/
/*spec:nnbd-sdk.member: testEmptyListLiteralTyped:type=[inst:List<String*>]*/
/*member: testEmptyListLiteralTyped:type=[inst:List<String*>]*/
testEmptyListLiteralTyped() => <String>[];
/*member: testEmptyListLiteralConstant:type=[inst:List<dynamic>]*/
testEmptyListLiteralConstant() => const [];
/*spec:nnbd-off.member: testNonEmptyListLiteral:type=[
inst:JSBool,
inst:List<bool>]*/
/*spec:nnbd-sdk.member: testNonEmptyListLiteral:type=[
/*member: testNonEmptyListLiteral:type=[
inst:JSBool,
inst:List<bool*>]*/
testNonEmptyListLiteral() => [true];
@ -181,8 +168,7 @@ testEmptyMapLiteral() => {};
/*member: testEmptyMapLiteralDynamic:type=[inst:Map<dynamic,dynamic>]*/
testEmptyMapLiteralDynamic() => <dynamic, dynamic>{};
/*spec:nnbd-off.member: testEmptyMapLiteralTyped:type=[inst:Map<String,int>]*/
/*spec:nnbd-sdk.member: testEmptyMapLiteralTyped:type=[inst:Map<String*,int*>]*/
/*member: testEmptyMapLiteralTyped:type=[inst:Map<String*,int*>]*/
testEmptyMapLiteralTyped() => <String, int>{};
/*member: testEmptyMapLiteralConstant:
@ -194,11 +180,7 @@ type=[
*/
testEmptyMapLiteralConstant() => const {};
/*spec:nnbd-off.member: testNonEmptyMapLiteral:type=[
inst:JSBool,
inst:JSNull,
inst:Map<Null,bool>]*/
/*spec:nnbd-sdk.member: testNonEmptyMapLiteral:type=[
/*member: testNonEmptyMapLiteral:type=[
inst:JSBool,
inst:JSNull,
inst:Map<Null,bool*>]*/

View file

@ -1,2 +1 @@
spec:nnbd-off=pkg/compiler/test/impact/impact_test.dart
spec:nnbd-sdk=pkg/compiler/test/impact/impact_test.dart
spec=pkg/compiler/test/impact/impact_test.dart

View file

@ -58,53 +58,8 @@ testNativeMethodReturns() native;
@Native("NativeClass")
class NativeClass {
/*spec:nnbd-off.member: NativeClass.field:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
inst:JSNull,
native:JSExtendableArray<JSExtendableArray.E>,
native:Object,
native:String,
native:bool,
native:double,
native:int,
param:Object]
*/
/*spec:nnbd-sdk.member: NativeClass.field:
@annotation_Creates_SerializedScriptValue
/*member: NativeClass.field:
static=[
Rti._bind(1),
Rti._eval(1),
@ -153,7 +108,6 @@ class NativeClass {
native:int,
param:Object*]
*/
@annotation_Creates_SerializedScriptValue
final Object field;
factory NativeClass._() {
@ -161,48 +115,7 @@ class NativeClass {
}
}
/*spec:nnbd-off.member: testNativeField:
dynamic=[NativeClass.field],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
defineProperty(3),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
param:NativeClass]
*/
/*spec:nnbd-sdk.member: testNativeField:
/*member: testNativeField:
dynamic=[NativeClass.field],
static=[
Rti._bind(1),

View file

@ -39,48 +39,7 @@ main() {
dynamicToNoSuchMethodTearOff(null);
}
/*spec:nnbd-off.member: positiveTyped:
dynamic=[SubClass.method(0)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
is:SubClass,
param:Class]
*/
/*spec:nnbd-sdk.member: positiveTyped:
/*member: positiveTyped:
dynamic=[SubClass.method(0)],
static=[
Rti._bind(1),
@ -128,47 +87,7 @@ positiveTyped(Class cls) {
if (cls is SubClass) cls.method();
}
/*spec:nnbd-off.member: positiveDynamic:
dynamic=[SubClass.method(0)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
is:SubClass]
*/
/*spec:nnbd-sdk.member: positiveDynamic:
/*member: positiveDynamic:
dynamic=[SubClass.method(0)],
static=[
Rti._bind(1),
@ -215,47 +134,7 @@ positiveDynamic(dynamic cls) {
if (cls is SubClass) cls.method();
}
/*spec:nnbd-off.member: negativeDynamic:
dynamic=[SubClass.method(0)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1)],
type=[
inst:Closure,
inst:JSBool,
is:SubClass]
*/
/*spec:nnbd-sdk.member: negativeDynamic:
/*member: negativeDynamic:
dynamic=[SubClass.method(0)],
static=[
Rti._bind(1),

File diff suppressed because it is too large Load diff

View file

@ -67,53 +67,7 @@ testIfThenElse() {
return 1;
}
/*spec:nnbd-off.member: testForIn:
dynamic=[
Iterator.current,
Iterator.iterator,
Iterator.moveNext(0)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
checkConcurrentModificationError(2),
findType(1),
instanceType(1)],
type=[
impl:Iterable<dynamic>,
inst:Closure,
inst:JSBool,
inst:JSNull,
inst:Null]
*/
/*spec:nnbd-sdk.member: testForIn:
/*member: testForIn:
dynamic=[
Iterator.current,
Iterator.iterator,
@ -167,54 +121,7 @@ testForIn(o) {
for (var e in o) {}
}
/*spec:nnbd-off.member: testForInTyped:
dynamic=[
Iterator.current,
Iterator.iterator,
Iterator.moveNext(0)],
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
checkConcurrentModificationError(2),
findType(1),
instanceType(1)],
type=[
impl:Iterable<dynamic>,
impl:int,
inst:Closure,
inst:JSBool,
inst:JSNull,
inst:Null]
*/
/*spec:nnbd-sdk.member: testForInTyped:
/*member: testForInTyped:
dynamic=[
Iterator.current,
Iterator.iterator,
@ -279,49 +186,7 @@ testTryCatch() {
try {} catch (e) {}
}
/*spec:nnbd-off.member: testTryCatchOn:
static=[
Rti._bind(1),
Rti._eval(1),
_arrayInstanceType(1),
_asBool(1),
_asBoolQ(1),
_asBoolS(1),
_asDouble(1),
_asDoubleQ(1),
_asDoubleS(1),
_asInt(1),
_asIntQ(1),
_asIntS(1),
_asNum(1),
_asNumQ(1),
_asNumS(1),
_asObject(1),
_asString(1),
_asStringQ(1),
_asStringS(1),
_asTop(1),
_generalAsCheckImplementation(1),
_generalIsTestImplementation(1),
_installSpecializedIsTest(1),
_instanceType(1),
_isBool(1),
_isInt(1),
_isNum(1),
_isObject(1),
_isString(1),
_isTop(1),
findType(1),
instanceType(1),
unwrapException(1)],
type=[
catch:String,
inst:Closure,
inst:JSBool,
inst:PlainJavaScriptObject,
inst:UnknownJavaScriptObject]
*/
/*spec:nnbd-sdk.member: testTryCatchOn:
/*member: testTryCatchOn:
static=[
Rti._bind(1),
Rti._eval(1),

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/inference/callers_test.dart
prod:nnbd-off=pkg/compiler/test/inference/callers_test.dart
spec:nnbd-sdk=pkg/compiler/test/inference/callers_test.dart
prod:nnbd-sdk=pkg/compiler/test/inference/callers_test.dart
spec=pkg/compiler/test/inference/callers_test.dart
prod=pkg/compiler/test/inference/callers_test.dart

View file

@ -11,8 +11,8 @@ import "package:expect/expect.dart";
/*member: f:[subclass=JSInt]*/
int f(
int
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod:nnbd-off|prod:nnbd-sdk.[null|subclass=JSInt]*/
/*spec.[null|subclass=Object]*/
/*prod.[null|subclass=JSInt]*/
i) =>
2 /*invoke: [exact=JSUInt31]*/ * i;

View file

@ -57,8 +57,8 @@ foo2(int /*[exact=JSUInt31]*/ choice) {
i /*invoke: [subclass=JSPositiveInt]*/ ++) {
methods. /*invoke: [exact=JSExtendableArray]*/ add(
/*[null]*/ (int
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod:nnbd-off|prod:nnbd-sdk.[null|subclass=JSInt]*/
/*spec.[null|subclass=Object]*/
/*prod.[null|subclass=JSInt]*/
x) {
res = x;
sum = x /*invoke: [null|subclass=JSInt]*/ + i;

View file

@ -7,8 +7,8 @@
/*member: closure:[exact=JSUInt31]*/
int closure(
int
/*spec:nnbd-off|spec:nnbd-sdk.Union([exact=JSDouble], [exact=JSUInt31])*/
/*prod:nnbd-off|prod:nnbd-sdk.[exact=JSUInt31]*/
/*spec.Union([exact=JSDouble], [exact=JSUInt31])*/
/*prod.[exact=JSUInt31]*/
x) {
return x;
}

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/inference/inference_test_helper.dart
prod:nnbd-off=pkg/compiler/test/inference/inference_test_helper.dart
spec:nnbd-sdk=pkg/compiler/test/inference/inference_test_helper.dart
prod:nnbd-sdk=pkg/compiler/test/inference/inference_test_helper.dart
spec=pkg/compiler/test/inference/inference_test_helper.dart
prod=pkg/compiler/test/inference/inference_test_helper.dart

View file

@ -17,8 +17,8 @@ class Class1 {
/*member: Class1.noSuchMethod:[exact=JSUInt31]*/
noSuchMethod(
Invocation
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod:nnbd-off|prod:nnbd-sdk.[null|exact=JSInvocationMirror]*/
/*spec.[null|subclass=Object]*/
/*prod.[null|exact=JSInvocationMirror]*/
_) =>
42;
@ -41,8 +41,8 @@ class Class2 {
/*member: Class2.noSuchMethod:[exact=JSUInt31]*/
noSuchMethod(
Invocation
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod:nnbd-off|prod:nnbd-sdk.[null|exact=JSInvocationMirror]*/
/*spec.[null|subclass=Object]*/
/*prod.[null|exact=JSInvocationMirror]*/
_) =>
42;
@ -65,8 +65,8 @@ class Class3 {
/*member: Class3.noSuchMethod:[null|subclass=Object]*/
noSuchMethod(
Invocation
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod:nnbd-off|prod:nnbd-sdk.[null|exact=JSInvocationMirror]*/
/*spec.[null|subclass=Object]*/
/*prod.[null|exact=JSInvocationMirror]*/
invocation) {
return invocation
.
@ -101,8 +101,8 @@ class Class4 {
/*member: Class4.noSuchMethod:[null]*/
noSuchMethod(
Invocation
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod:nnbd-off|prod:nnbd-sdk.[null|exact=JSInvocationMirror]*/
/*spec.[null|subclass=Object]*/
/*prod.[null|exact=JSInvocationMirror]*/
invocation) {
this. /*update: [exact=Class4]*/ field = invocation
.

View file

@ -8,8 +8,8 @@
class A {
/*member: A.noSuchMethod:[exact=JSUInt31]*/
noSuchMethod(
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod:nnbd-off|prod:nnbd-sdk.[null|exact=JSInvocationMirror]*/
/*spec.[null|subclass=Object]*/
/*prod.[null|exact=JSInvocationMirror]*/
im) =>
42;
}

View file

@ -8,8 +8,8 @@
abstract class A {
/*member: A.noSuchMethod:[exact=JSUInt31]*/
noSuchMethod(
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod:nnbd-off|prod:nnbd-sdk.[null|exact=JSInvocationMirror]*/
/*spec.[null|subclass=Object]*/
/*prod.[null|exact=JSInvocationMirror]*/
im) =>
42;
}
@ -33,8 +33,8 @@ class D implements A {
/*member: D.noSuchMethod:[exact=JSDouble]*/
noSuchMethod(
/*prod:nnbd-off|prod:nnbd-sdk.[null|exact=JSInvocationMirror]*/
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod.[null|exact=JSInvocationMirror]*/
/*spec.[null|subclass=Object]*/
im) =>
42.5;
}

View file

@ -10,8 +10,8 @@ class A {
// throws an exception.
/*member: A.noSuchMethod:[empty]*/
noSuchMethod(
/*spec:nnbd-off|spec:nnbd-sdk.[null|subclass=Object]*/
/*prod:nnbd-off|prod:nnbd-sdk.[null|exact=JSInvocationMirror]*/
/*spec.[null|subclass=Object]*/
/*prod.[null|exact=JSInvocationMirror]*/
im) =>
throw 'foo';
}

View file

@ -18,8 +18,8 @@ main() {
/*member: _trustParameters:[exact=JSUInt31]*/
_trustParameters(
int
/*spec:nnbd-off|spec:nnbd-sdk.Union([exact=JSString], [exact=JSUInt31])*/
/*prod:nnbd-off|prod:nnbd-sdk.[exact=JSUInt31]*/
/*spec.Union([exact=JSString], [exact=JSUInt31])*/
/*prod.[exact=JSUInt31]*/
i) {
return i;
}

View file

@ -1,2 +1 @@
spec:nnbd-off=pkg/compiler/test/inference/inference_data_test.dart
spec:nnbd-sdk=pkg/compiler/test/inference/inference_data_test.dart
spec=pkg/compiler/test/inference/inference_data_test.dart

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/inference/side_effects_test.dart
prod:nnbd-off=pkg/compiler/test/inference/side_effects_test.dart
spec:nnbd-sdk=pkg/compiler/test/inference/side_effects_test.dart
prod:nnbd-sdk=pkg/compiler/test/inference/side_effects_test.dart
spec=pkg/compiler/test/inference/side_effects_test.dart
prod=pkg/compiler/test/inference/side_effects_test.dart

View file

@ -51,9 +51,8 @@ forceInlineConstructorBody() {
////////////////////////////////////////////////////////////////////////////////
class Class3<T> {
/*spec:nnbd-off|prod:nnbd-off.member: Class3.:[forceInlineGenericConstructor:Class3<int>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class3.:[forceInlineGenericConstructor:Class3<int*>]*/
@pragma('dart2js:tryInline')
/*member: Class3.:[forceInlineGenericConstructor:Class3<int*>]*/
Class3();
}
@ -68,16 +67,14 @@ forceInlineGenericConstructor() {
////////////////////////////////////////////////////////////////////////////////
class Class4a<T> implements Class4b<T> {
/*spec:nnbd-off|prod:nnbd-off.member: Class4a.:[forceInlineGenericFactory:Class4a<int>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class4a.:[forceInlineGenericFactory:Class4a<int*>]*/
@pragma('dart2js:tryInline')
/*member: Class4a.:[forceInlineGenericFactory:Class4a<int*>]*/
Class4a();
}
class Class4b<T> {
/*spec:nnbd-off|prod:nnbd-off.member: Class4b.:[forceInlineGenericFactory:Class4b<int>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class4b.:[forceInlineGenericFactory:Class4b<int*>]*/
@pragma('dart2js:tryInline')
/*member: Class4b.:[forceInlineGenericFactory:Class4b<int*>]*/
factory Class4b() => new Class4a<T>();
}

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/inlining/inlining_test.dart
prod:nnbd-off=pkg/compiler/test/inlining/inlining_test.dart
spec:nnbd-sdk=pkg/compiler/test/inlining/inlining_test.dart
prod:nnbd-sdk=pkg/compiler/test/inlining/inlining_test.dart
spec=pkg/compiler/test/inlining/inlining_test.dart
prod=pkg/compiler/test/inlining/inlining_test.dart

View file

@ -15,9 +15,8 @@ main() {
////////////////////////////////////////////////////////////////////////////////
class Class1<T> {
/*spec:nnbd-off|prod:nnbd-off.member: Class1.:[nestedGenericInlining:Class1<int>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class1.:[nestedGenericInlining:Class1<int*>]*/
@pragma('dart2js:tryInline')
/*member: Class1.:[nestedGenericInlining:Class1<int*>]*/
Class1();
/*member: Class1.method:[nestedGenericInlining]*/
@ -30,9 +29,8 @@ class Class1<T> {
class Class2<T> {
// TODO(johnniwinther): Should the type have been Class<List<int>>?
// Similarly below.
/*spec:nnbd-off|prod:nnbd-off.member: Class2.:[nestedGenericInlining:Class2<List<Class1.T>>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class2.:[nestedGenericInlining:Class2<List<Class1.T*>*>]*/
@pragma('dart2js:tryInline')
/*member: Class2.:[nestedGenericInlining:Class2<List<Class1.T*>*>]*/
Class2();
/*member: Class2.method:[nestedGenericInlining]*/
@ -51,9 +49,8 @@ nestedGenericInlining() {
////////////////////////////////////////////////////////////////////////////////
class Class3a<T> implements Class3b<T> {
/*spec:nnbd-off|prod:nnbd-off.member: Class3a.:[nestedGenericFactoryInlining:Class3a<int>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class3a.:[nestedGenericFactoryInlining:Class3a<int*>]*/
@pragma('dart2js:tryInline')
/*member: Class3a.:[nestedGenericFactoryInlining:Class3a<int*>]*/
Class3a();
/*member: Class3a.method:[nestedGenericFactoryInlining]*/
@ -64,18 +61,16 @@ class Class3a<T> implements Class3b<T> {
}
abstract class Class3b<T> {
/*spec:nnbd-off|prod:nnbd-off.member: Class3b.:[nestedGenericFactoryInlining:Class3b<int>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class3b.:[nestedGenericFactoryInlining:Class3b<int*>]*/
@pragma('dart2js:tryInline')
/*member: Class3b.:[nestedGenericFactoryInlining:Class3b<int*>]*/
factory Class3b() => new Class3a<T>();
method();
}
class Class4a<T> implements Class4b<T> {
/*spec:nnbd-off|prod:nnbd-off.member: Class4a.:[nestedGenericFactoryInlining:Class4a<Class4b.T>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class4a.:[nestedGenericFactoryInlining:Class4a<Class4b.T*>]*/
@pragma('dart2js:tryInline')
/*member: Class4a.:[nestedGenericFactoryInlining:Class4a<Class4b.T*>]*/
Class4a();
/*member: Class4a.method:[nestedGenericFactoryInlining]*/
@ -84,9 +79,8 @@ class Class4a<T> implements Class4b<T> {
}
abstract class Class4b<T> {
/*spec:nnbd-off|prod:nnbd-off.member: Class4b.:[nestedGenericFactoryInlining:Class4b<List<Class3a.T>>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class4b.:[nestedGenericFactoryInlining:Class4b<List<Class3a.T*>*>]*/
@pragma('dart2js:tryInline')
/*member: Class4b.:[nestedGenericFactoryInlining:Class4b<List<Class3a.T*>*>]*/
factory Class4b() => new Class4a<T>();
method();

View file

@ -9,14 +9,12 @@ main() {
inlineTypeTests();
}
/*spec:nnbd-off|prod:nnbd-off.member: Mixin1.:[inlineTypeTests:Mixin1<int>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Mixin1.:[inlineTypeTests:Mixin1<int*>]*/
/*member: Mixin1.:[inlineTypeTests:Mixin1<int*>]*/
class Mixin1<S> {
var field = /*[]*/ (S s) => null;
}
/*spec:nnbd-off|prod:nnbd-off.member: Class1.:[inlineTypeTests:Class1<int>]*/
/*spec:nnbd-sdk|prod:nnbd-sdk.member: Class1.:[inlineTypeTests:Class1<int*>]*/
/*member: Class1.:[inlineTypeTests:Class1<int*>]*/
class Class1<T> extends Object with Mixin1<T> {}
/*member: _inlineTypeTests:[inlineTypeTests]*/

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/jumps/jump_test.dart
prod:nnbd-off=pkg/compiler/test/jumps/jump_test.dart
spec:nnbd-sdk=pkg/compiler/test/jumps/jump_test.dart
prod:nnbd-sdk=pkg/compiler/test/jumps/jump_test.dart
spec=pkg/compiler/test/jumps/jump_test.dart
prod=pkg/compiler/test/jumps/jump_test.dart

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/member_usage/member_usage_test.dart
prod:nnbd-off=pkg/compiler/test/member_usage/member_usage_test.dart
spec:nnbd-sdk=pkg/compiler/test/member_usage/member_usage_test.dart
prod:nnbd-sdk=pkg/compiler/test/member_usage/member_usage_test.dart
spec=pkg/compiler/test/member_usage/member_usage_test.dart
prod=pkg/compiler/test/member_usage/member_usage_test.dart

View file

@ -33,19 +33,9 @@ class TestData {
final String declarations;
/// Tested constants.
final List<ConstantData> constantsCommon;
final List<ConstantData> constantsPreNnbd;
final List<ConstantData> constantsNnbdWeak;
List<ConstantData> get constants =>
constantsCommon +
(isDart2jsNnbd && constantsNnbdWeak.isNotEmpty
? constantsNnbdWeak
: constantsPreNnbd);
final List<ConstantData> constants;
const TestData(this.name, this.declarations,
{this.constantsCommon: const [],
this.constantsPreNnbd: const [],
this.constantsNnbdWeak: const []});
const TestData(this.name, this.declarations, this.constants);
}
class ConstantData {
@ -65,102 +55,84 @@ class ConstantData {
const ConstantData(this.code, this.expectedResults, {this.expectedErrors});
}
const List<TestData> DATA = const [
const TestData('simple', '', constantsCommon: const [
const ConstantData('null', 'NullConstant'),
const ConstantData('false', 'BoolConstant(false)'),
const ConstantData('true', 'BoolConstant(true)'),
const ConstantData('0', 'IntConstant(0)'),
const ConstantData('0.0', 'IntConstant(0)'),
const ConstantData('"foo"', 'StringConstant("foo")'),
const ConstantData('1 + 2', 'IntConstant(3)'),
const ConstantData('-(1)', 'IntConstant(-1)'),
const ConstantData('1 == 2', 'BoolConstant(false)'),
const ConstantData('1 != 2', 'BoolConstant(true)'),
const ConstantData('1 / 0', 'DoubleConstant(Infinity)'),
const ConstantData('0 / 0', 'DoubleConstant(NaN)'),
const ConstantData('1 << 0', 'IntConstant(1)'),
const ConstantData('1 >> 0', 'IntConstant(1)'),
const ConstantData('"foo".length', 'IntConstant(3)'),
const ConstantData('identical(0, 1)', 'BoolConstant(false)'),
const ConstantData('"a" "b"', 'StringConstant("ab")'),
const ConstantData(r'"${null}"', 'StringConstant("null")'),
const ConstantData('identical', 'FunctionConstant(identical)'),
const ConstantData('true ? 0 : 1', 'IntConstant(0)'),
const ConstantData('proxy', 'ConstructedConstant(_Proxy())'),
const ConstantData('const [] == null', 'BoolConstant(false)'),
const ConstantData('proxy == null', 'BoolConstant(false)'),
const ConstantData('proxy != null', 'BoolConstant(true)'),
const ConstantData('null == proxy', 'BoolConstant(false)'),
const ConstantData('null != proxy', 'BoolConstant(true)'),
const ConstantData('true == proxy', 'BoolConstant(false)'),
const ConstantData('true != proxy', 'BoolConstant(true)'),
const ConstantData('0 == proxy', 'BoolConstant(false)'),
const ConstantData('0 != proxy', 'BoolConstant(true)'),
const ConstantData('0.5 == proxy', 'BoolConstant(false)'),
const ConstantData('0.5 != proxy', 'BoolConstant(true)'),
const ConstantData('"" == proxy', 'BoolConstant(false)'),
const ConstantData('"" != proxy', 'BoolConstant(true)'),
const ConstantData('Object', 'TypeConstant(Object)'),
const ConstantData('null ?? 0', 'IntConstant(0)'),
const ConstantData('const <int, int>{0: 1, 0: 2}', 'NonConstant',
const List<TestData> DATA = [
TestData('simple', '', [
ConstantData('null', 'NullConstant'),
ConstantData('false', 'BoolConstant(false)'),
ConstantData('true', 'BoolConstant(true)'),
ConstantData('0', 'IntConstant(0)'),
ConstantData('0.0', 'IntConstant(0)'),
ConstantData('"foo"', 'StringConstant("foo")'),
ConstantData('1 + 2', 'IntConstant(3)'),
ConstantData('-(1)', 'IntConstant(-1)'),
ConstantData('1 == 2', 'BoolConstant(false)'),
ConstantData('1 != 2', 'BoolConstant(true)'),
ConstantData('1 / 0', 'DoubleConstant(Infinity)'),
ConstantData('0 / 0', 'DoubleConstant(NaN)'),
ConstantData('1 << 0', 'IntConstant(1)'),
ConstantData('1 >> 0', 'IntConstant(1)'),
ConstantData('"foo".length', 'IntConstant(3)'),
ConstantData('identical(0, 1)', 'BoolConstant(false)'),
ConstantData('"a" "b"', 'StringConstant("ab")'),
ConstantData(r'"${null}"', 'StringConstant("null")'),
ConstantData('identical', 'FunctionConstant(identical)'),
ConstantData('true ? 0 : 1', 'IntConstant(0)'),
ConstantData('proxy', 'ConstructedConstant(_Proxy())'),
ConstantData('const [] == null', 'BoolConstant(false)'),
ConstantData('proxy == null', 'BoolConstant(false)'),
ConstantData('proxy != null', 'BoolConstant(true)'),
ConstantData('null == proxy', 'BoolConstant(false)'),
ConstantData('null != proxy', 'BoolConstant(true)'),
ConstantData('true == proxy', 'BoolConstant(false)'),
ConstantData('true != proxy', 'BoolConstant(true)'),
ConstantData('0 == proxy', 'BoolConstant(false)'),
ConstantData('0 != proxy', 'BoolConstant(true)'),
ConstantData('0.5 == proxy', 'BoolConstant(false)'),
ConstantData('0.5 != proxy', 'BoolConstant(true)'),
ConstantData('"" == proxy', 'BoolConstant(false)'),
ConstantData('"" != proxy', 'BoolConstant(true)'),
ConstantData('Object', 'TypeConstant(Object)'),
ConstantData('null ?? 0', 'IntConstant(0)'),
ConstantData('const <int, int>{0: 1, 0: 2}', 'NonConstant',
expectedErrors: 'ConstEvalDuplicateKey'),
const ConstantData(
ConstantData(
'const bool.fromEnvironment("foo", defaultValue: false)',
const <Map<String, String>, String>{
const {}: 'BoolConstant(false)',
const {'foo': 'true'}: 'BoolConstant(true)'
<Map<String, String>, String>{
{}: 'BoolConstant(false)',
{'foo': 'true'}: 'BoolConstant(true)'
}),
const ConstantData(
ConstantData(
'const int.fromEnvironment("foo", defaultValue: 42)',
const <Map<String, String>, String>{
const {}: 'IntConstant(42)',
const {'foo': '87'}: 'IntConstant(87)'
<Map<String, String>, String>{
{}: 'IntConstant(42)',
{'foo': '87'}: 'IntConstant(87)'
}),
const ConstantData(
ConstantData(
'const String.fromEnvironment("foo", defaultValue: "bar")',
const <Map<String, String>, String>{
const {}: 'StringConstant("bar")',
const {'foo': 'foo'}: 'StringConstant("foo")'
<Map<String, String>, String>{
{}: 'StringConstant("bar")',
{'foo': 'foo'}: 'StringConstant("foo")'
}),
], constantsPreNnbd: const [
const ConstantData(
'const [0, 1]', 'ListConstant(<int>[IntConstant(0), IntConstant(1)])'),
const ConstantData('const <int>[0, 1]',
'ListConstant(<int>[IntConstant(0), IntConstant(1)])'),
const ConstantData(
'const {0, 1}', 'SetConstant(<int>{IntConstant(0), IntConstant(1)})'),
const ConstantData('const <int>{0, 1}',
'SetConstant(<int>{IntConstant(0), IntConstant(1)})'),
const ConstantData(
'const {0: 1, 2: 3}',
'MapConstant(<int, int>{IntConstant(0): IntConstant(1), '
'IntConstant(2): IntConstant(3)})'),
const ConstantData(
'const <int, int>{0: 1, 2: 3}',
'MapConstant(<int, int>{IntConstant(0): IntConstant(1), '
'IntConstant(2): IntConstant(3)})'),
], constantsNnbdWeak: const [
const ConstantData(
ConstantData(
'const [0, 1]', 'ListConstant(<int*>[IntConstant(0), IntConstant(1)])'),
const ConstantData('const <int>[0, 1]',
ConstantData('const <int>[0, 1]',
'ListConstant(<int*>[IntConstant(0), IntConstant(1)])'),
const ConstantData(
ConstantData(
'const {0, 1}', 'SetConstant(<int*>{IntConstant(0), IntConstant(1)})'),
const ConstantData('const <int>{0, 1}',
ConstantData('const <int>{0, 1}',
'SetConstant(<int*>{IntConstant(0), IntConstant(1)})'),
const ConstantData(
ConstantData(
'const {0: 1, 2: 3}',
'MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), '
'IntConstant(2): IntConstant(3)})'),
const ConstantData(
ConstantData(
'const <int, int>{0: 1, 2: 3}',
'MapConstant(<int*, int*>{IntConstant(0): IntConstant(1), '
'IntConstant(2): IntConstant(3)})'),
]),
const TestData('env', '''
const a = const bool.fromEnvironment("foo", defaultValue: true);
const b = const int.fromEnvironment("bar", defaultValue: 42);
TestData('env', '''
const a = bool.fromEnvironment("foo", defaultValue: true);
const b = int.fromEnvironment("bar", defaultValue: 42);
class A {
const A();
@ -178,48 +150,46 @@ class D extends C {
final field3 = 99;
const D(a, b) : super(field2: a, field1: b);
}
''', constantsCommon: const [
const ConstantData('const Object()', 'ConstructedConstant(Object())'),
const ConstantData('const A()', 'ConstructedConstant(A())'),
const ConstantData(
'const B(0)', 'ConstructedConstant(B(field1=IntConstant(0)))'),
const ConstantData('const B(const A())',
''', [
ConstantData('const Object()', 'ConstructedConstant(Object())'),
ConstantData('const A()', 'ConstructedConstant(A())'),
ConstantData('const B(0)', 'ConstructedConstant(B(field1=IntConstant(0)))'),
ConstantData('const B(A())',
'ConstructedConstant(B(field1=ConstructedConstant(A())))'),
const ConstantData(
ConstantData(
'const C()',
'ConstructedConstant(C(field1=IntConstant(42),'
'field2=BoolConstant(false)))'),
const ConstantData(
ConstantData(
'const C(field1: 87)',
'ConstructedConstant(C(field1=IntConstant(87),'
'field2=BoolConstant(false)))'),
const ConstantData(
ConstantData(
'const C(field2: true)',
'ConstructedConstant(C(field1=IntConstant(42),'
'field2=BoolConstant(true)))'),
const ConstantData(
ConstantData(
'const C.named()',
'ConstructedConstant(C(field1=BoolConstant(false),'
'field2=BoolConstant(false)))'),
const ConstantData(
ConstantData(
'const C.named(87)',
'ConstructedConstant(C(field1=IntConstant(87),'
'field2=IntConstant(87)))'),
const ConstantData(
'const C(field1: a, field2: b)', const <Map<String, String>, String>{
const {}: 'ConstructedConstant(C(field1=BoolConstant(true),'
ConstantData('const C(field1: a, field2: b)', <Map<String, String>, String>{
{}: 'ConstructedConstant(C(field1=BoolConstant(true),'
'field2=IntConstant(42)))',
const {'foo': 'false', 'bar': '87'}:
{'foo': 'false', 'bar': '87'}:
'ConstructedConstant(C(field1=BoolConstant(false),'
'field2=IntConstant(87)))',
}),
const ConstantData(
ConstantData(
'const D(42, 87)',
'ConstructedConstant(D(field1=IntConstant(87),'
'field2=IntConstant(42),'
'field3=IntConstant(99)))'),
]),
const TestData('redirect', '''
TestData('redirect', '''
class A<T> implements B<Null> {
final field1;
const A({this.field1:42});
@ -231,39 +201,25 @@ class B<S> implements C<Null> {
class C<U> {
const factory C({field1}) = A<B<double>>;
}
''', constantsCommon: const [
const ConstantData(
''', [
ConstantData(
'const A()', 'ConstructedConstant(A<dynamic>(field1=IntConstant(42)))'),
], constantsPreNnbd: const [
const ConstantData('const A<int>(field1: 87)',
'ConstructedConstant(A<int>(field1=IntConstant(87)))'),
const ConstantData('const B()',
'ConstructedConstant(A<B<dynamic>>(field1=IntConstant(42)))'),
const ConstantData('const B<int>()',
'ConstructedConstant(A<B<int>>(field1=IntConstant(42)))'),
const ConstantData('const B<int>(field1: 87)',
'ConstructedConstant(A<B<int>>(field1=IntConstant(87)))'),
const ConstantData('const C<int>(field1: 87)',
'ConstructedConstant(A<B<double>>(field1=IntConstant(87)))'),
const ConstantData('const B<int>.named()',
'ConstructedConstant(A<int>(field1=IntConstant(42)))'),
], constantsNnbdWeak: const [
const ConstantData('const A<int>(field1: 87)',
ConstantData('const A<int>(field1: 87)',
'ConstructedConstant(A<int*>(field1=IntConstant(87)))'),
const ConstantData('const B()',
ConstantData('const B()',
'ConstructedConstant(A<B<dynamic>*>(field1=IntConstant(42)))'),
const ConstantData('const B<int>()',
ConstantData('const B<int>()',
'ConstructedConstant(A<B<int*>*>(field1=IntConstant(42)))'),
const ConstantData('const B<int>(field1: 87)',
ConstantData('const B<int>(field1: 87)',
'ConstructedConstant(A<B<int*>*>(field1=IntConstant(87)))'),
const ConstantData('const C<int>(field1: 87)',
ConstantData('const C<int>(field1: 87)',
'ConstructedConstant(A<B<double*>*>(field1=IntConstant(87)))'),
const ConstantData('const B<int>.named()',
ConstantData('const B<int>.named()',
'ConstructedConstant(A<int*>(field1=IntConstant(42)))'),
]),
const TestData('env2', '''
const c = const int.fromEnvironment("foo", defaultValue: 5);
const d = const int.fromEnvironment("bar", defaultValue: 10);
TestData('env2', '''
const c = int.fromEnvironment("foo", defaultValue: 5);
const d = int.fromEnvironment("bar", defaultValue: 10);
class A {
final field;
@ -273,18 +229,18 @@ class A {
class B extends A {
const B(a) : super(a, a * 2);
}
''', constantsCommon: const [
const ConstantData('const A(c, d)', const <Map<String, String>, String>{
const {}: 'ConstructedConstant(A(field=IntConstant(15)))',
const {'foo': '7', 'bar': '11'}:
''', [
ConstantData('const A(c, d)', <Map<String, String>, String>{
{}: 'ConstructedConstant(A(field=IntConstant(15)))',
{'foo': '7', 'bar': '11'}:
'ConstructedConstant(A(field=IntConstant(18)))',
}),
const ConstantData('const B(d)', const <Map<String, String>, String>{
const {}: 'ConstructedConstant(B(field=IntConstant(30)))',
const {'bar': '42'}: 'ConstructedConstant(B(field=IntConstant(126)))',
ConstantData('const B(d)', <Map<String, String>, String>{
{}: 'ConstructedConstant(B(field=IntConstant(30)))',
{'bar': '42'}: 'ConstructedConstant(B(field=IntConstant(126)))',
}),
]),
const TestData('construct', '''
TestData('construct', '''
class A {
final x;
final y;
@ -295,8 +251,8 @@ class B extends A {
const A.named(z, this.t) : y = 400 + z, this.z = z, x = 3;
const A.named2(t, z, y, x) : x = t, y = z, z = y, t = x;
}
''', constantsCommon: const [
const ConstantData(
''', [
ConstantData(
'const A.named(99, 100)',
'ConstructedConstant(A('
't=IntConstant(100),'
@ -304,7 +260,7 @@ class B extends A {
'x=IntConstant(3),'
'y=IntConstant(499),'
'z=IntConstant(99)))'),
const ConstantData(
ConstantData(
'const A(99, 100)',
'ConstructedConstant(A('
't=IntConstant(100),'
@ -313,16 +269,16 @@ class B extends A {
'y=IntConstant(499),'
'z=IntConstant(99)))'),
]),
const TestData('errors', r'''
const dynamic null_ = const bool.fromEnvironment('x') ? null : null;
const dynamic zero = const bool.fromEnvironment('x') ? null : 0;
const dynamic minus_one = const bool.fromEnvironment('x') ? null : -1;
const dynamic false_ = const bool.fromEnvironment('x') ? null : false;
const dynamic integer = const int.fromEnvironment("foo", defaultValue: 5);
const dynamic string = const String.fromEnvironment("bar", defaultValue: "baz");
const dynamic boolean = const bool.fromEnvironment("baz", defaultValue: false);
TestData('errors', r'''
const dynamic null_ = bool.fromEnvironment('x') ? null : null;
const dynamic zero = bool.fromEnvironment('x') ? null : 0;
const dynamic minus_one = bool.fromEnvironment('x') ? null : -1;
const dynamic false_ = bool.fromEnvironment('x') ? null : false;
const dynamic integer = int.fromEnvironment("foo", defaultValue: 5);
const dynamic string = String.fromEnvironment("bar", defaultValue: "baz");
const dynamic boolean = bool.fromEnvironment("baz", defaultValue: false);
const dynamic not_string =
const bool.fromEnvironment("not_string", defaultValue: false) ? '' : 0;
bool.fromEnvironment("not_string", defaultValue: false) ? '' : 0;
class Class1 {
final field;
const Class1() : field = not_string.length;
@ -359,98 +315,96 @@ class B extends A {
final int field = string;
const Class10();
}
''', constantsCommon: const [
const ConstantData(
''', [
ConstantData(
r'"$integer $string $boolean"', 'StringConstant("5 baz false")'),
const ConstantData('integer ? true : false', 'NonConstant',
ConstantData('integer ? true : false', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData(r'"${proxy}"', 'NonConstant',
ConstantData(r'"${proxy}"', 'NonConstant',
expectedErrors: 'ConstEvalInvalidStringInterpolationOperand'),
const ConstantData('0 + string', 'NonConstant',
ConstantData('0 + string', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('string + 0', 'NonConstant',
ConstantData('string + 0', 'NonConstant',
expectedErrors: 'ConstEvalInvalidBinaryOperandType'),
const ConstantData('boolean + string', 'NonConstant',
ConstantData('boolean + string', 'NonConstant',
expectedErrors: 'ConstEvalInvalidMethodInvocation'),
const ConstantData('boolean + false', 'NonConstant',
ConstantData('boolean + false', 'NonConstant',
expectedErrors: 'ConstEvalInvalidMethodInvocation'),
const ConstantData('0 * string', 'NonConstant',
ConstantData('0 * string', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('0 % string', 'NonConstant',
ConstantData('0 % string', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('0 << string', 'NonConstant',
ConstantData('0 << string', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('1 ~/ zero', 'NonConstant',
ConstantData('1 ~/ zero', 'NonConstant',
expectedErrors: 'ConstEvalZeroDivisor'),
const ConstantData('1 % zero', 'NonConstant',
ConstantData('1 % zero', 'NonConstant',
expectedErrors: 'ConstEvalZeroDivisor'),
const ConstantData('1 << minus_one', 'NonConstant',
ConstantData('1 << minus_one', 'NonConstant',
expectedErrors: 'ConstEvalNegativeShift'),
const ConstantData('1 >> minus_one', 'NonConstant',
ConstantData('1 >> minus_one', 'NonConstant',
expectedErrors: 'ConstEvalNegativeShift'),
const ConstantData('const bool.fromEnvironment(integer)', 'NonConstant',
ConstantData('const bool.fromEnvironment(integer)', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData(
'const bool.fromEnvironment("baz", defaultValue: integer)',
ConstantData('const bool.fromEnvironment("baz", defaultValue: integer)',
'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('const int.fromEnvironment(integer)', 'NonConstant',
ConstantData('const int.fromEnvironment(integer)', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData(
ConstantData(
'const int.fromEnvironment("baz", defaultValue: string)', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('const String.fromEnvironment(integer)', 'NonConstant',
ConstantData('const String.fromEnvironment(integer)', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData(
'const String.fromEnvironment("baz", defaultValue: integer)',
ConstantData('const String.fromEnvironment("baz", defaultValue: integer)',
'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('false || integer', 'NonConstant',
ConstantData('false || integer', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('integer || true', 'NonConstant',
ConstantData('integer || true', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('integer && true', 'NonConstant',
ConstantData('integer && true', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('!integer', 'NonConstant',
ConstantData('!integer', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('!string', 'NonConstant',
ConstantData('!string', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('-(string)', 'NonConstant',
ConstantData('-(string)', 'NonConstant',
expectedErrors: 'ConstEvalInvalidMethodInvocation'),
const ConstantData('not_string.length', 'NonConstant',
ConstantData('not_string.length', 'NonConstant',
expectedErrors: 'ConstEvalInvalidPropertyGet'),
const ConstantData('const Class1()', 'NonConstant',
ConstantData('const Class1()', 'NonConstant',
expectedErrors: 'ConstEvalInvalidPropertyGet'),
const ConstantData('const Class2()', 'NonConstant',
ConstantData('const Class2()', 'NonConstant',
expectedErrors: 'ConstEvalFailedAssertion'),
const ConstantData('const Class2.redirect()', 'NonConstant',
ConstantData('const Class2.redirect()', 'NonConstant',
expectedErrors: 'ConstEvalFailedAssertion'),
const ConstantData('const Class3()', 'NonConstant',
ConstantData('const Class3()', 'NonConstant',
expectedErrors: 'ConstEvalFailedAssertionWithMessage'),
const ConstantData('const Class3.fact()', 'NonConstant',
ConstantData('const Class3.fact()', 'NonConstant',
expectedErrors: 'ConstEvalFailedAssertion'),
const ConstantData('const Class4()', 'NonConstant',
ConstantData('const Class4()', 'NonConstant',
expectedErrors: 'ConstEvalFailedAssertion'),
const ConstantData('const Class5(0)', 'NonConstant',
ConstantData('const Class5(0)', 'NonConstant',
expectedErrors: 'ConstEvalFailedAssertionWithMessage'),
const ConstantData('const Class5(1)', 'ConstructedConstant(Class5())'),
const ConstantData('const Class6(1)', 'NonConstant',
ConstantData('const Class5(1)', 'ConstructedConstant(Class5())'),
ConstantData('const Class6(1)', 'NonConstant',
expectedErrors: 'ConstEvalFailedAssertionWithMessage'),
const ConstantData('const Class6(2)', 'ConstructedConstant(Class6())'),
const ConstantData('const Class7()', 'ConstructedConstant(Class7())'),
const ConstantData('const Class7() == const Class7()', 'NonConstant',
ConstantData('const Class6(2)', 'ConstructedConstant(Class6())'),
ConstantData('const Class7()', 'ConstructedConstant(Class7())'),
ConstantData('const Class7() == const Class7()', 'NonConstant',
expectedErrors: 'ConstEvalInvalidEqualsOperandType'),
const ConstantData('const Class7() != const Class7()', 'NonConstant',
ConstantData('const Class7() != const Class7()', 'NonConstant',
expectedErrors: 'ConstEvalInvalidEqualsOperandType'),
const ConstantData('const Class8(not_string.length)', 'NonConstant',
ConstantData('const Class8(not_string.length)', 'NonConstant',
expectedErrors: 'ConstEvalInvalidPropertyGet'),
const ConstantData(
ConstantData(
'const Class9()', 'ConstructedConstant(Class9(field=NullConstant))'),
const ConstantData('const Class10()', 'NonConstant',
ConstantData('const Class10()', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
]),
const TestData('assert', '''
const true_ = const bool.fromEnvironment('x') ? null : true;
TestData('assert', '''
const true_ = bool.fromEnvironment('x') ? null : true;
class A {
const A() : assert(true);
}
@ -468,14 +422,14 @@ class B extends A {
class E {
const E() : assert(true_);
}
''', constantsCommon: const [
const ConstantData(r'const A()', 'ConstructedConstant(A())'),
const ConstantData(r'const B()', 'ConstructedConstant(B())'),
const ConstantData(r'const D(0)',
''', [
ConstantData(r'const A()', 'ConstructedConstant(A())'),
ConstantData(r'const B()', 'ConstructedConstant(B())'),
ConstantData(r'const D(0)',
'ConstructedConstant(D(a=IntConstant(1),b=IntConstant(2)))'),
const ConstantData(r'const E()', 'ConstructedConstant(E())'),
ConstantData(r'const E()', 'ConstructedConstant(E())'),
]),
const TestData('instantiations', '''
TestData('instantiations', '''
T identity<T>(T t) => t;
class C<T> {
final T defaultValue;
@ -483,58 +437,39 @@ class C<T> {
const C(this.defaultValue, this.identityFunction);
}
''', constantsCommon: [
const ConstantData('identity', 'FunctionConstant(identity)'),
], constantsPreNnbd: const <ConstantData>[
const ConstantData(
'const C<int>(0, identity)',
'ConstructedConstant(C<int>(defaultValue=IntConstant(0),'
'identityFunction=InstantiationConstant([int],'
'FunctionConstant(identity))))'),
const ConstantData(
'const C<double>(0.5, identity)',
'ConstructedConstant(C<double>(defaultValue=DoubleConstant(0.5),'
'identityFunction=InstantiationConstant([double],'
'FunctionConstant(identity))))'),
], constantsNnbdWeak: const <ConstantData>[
const ConstantData(
''', [
ConstantData('identity', 'FunctionConstant(identity)'),
ConstantData(
'const C<int>(0, identity)',
'ConstructedConstant(C<int*>(defaultValue=IntConstant(0),'
'identityFunction=InstantiationConstant([int*],'
'FunctionConstant(identity))))'),
const ConstantData(
ConstantData(
'const C<double>(0.5, identity)',
'ConstructedConstant(C<double*>(defaultValue=DoubleConstant(0.5),'
'identityFunction=InstantiationConstant([double*],'
'FunctionConstant(identity))))'),
]),
const TestData('generic class', '''
TestData('generic class', '''
class C<T> {
const C.generative();
const C.redirect() : this.generative();
}
''', constantsPreNnbd: const <ConstantData>[
const ConstantData(
'const C<int>.generative()', 'ConstructedConstant(C<int>())'),
const ConstantData(
'const C<int>.redirect()', 'ConstructedConstant(C<int>())'),
], constantsNnbdWeak: const <ConstantData>[
const ConstantData(
'const C<int>.generative()', 'ConstructedConstant(C<int*>())'),
const ConstantData(
'const C<int>.redirect()', 'ConstructedConstant(C<int*>())'),
''', <ConstantData>[
ConstantData('const C<int>.generative()', 'ConstructedConstant(C<int*>())'),
ConstantData('const C<int>.redirect()', 'ConstructedConstant(C<int*>())'),
]),
const TestData('instance', '''
const dynamic zero_ = const bool.fromEnvironment("x") ? null : 0;
TestData('instance', '''
const dynamic zero_ = bool.fromEnvironment("x") ? null : 0;
class Class9 {
final field = zero_;
const Class9();
}
''', constantsCommon: const <ConstantData>[
const ConstantData(
''', <ConstantData>[
ConstantData(
'const Class9()', 'ConstructedConstant(Class9(field=IntConstant(0)))'),
]),
const TestData('type-variables', '''
TestData('type-variables', '''
class A {
const A();
}
@ -550,22 +485,15 @@ class C2<T> {
final T Function(T) a;
const C2(dynamic t) : a = id; // implicit partial instantiation
}
''', constantsPreNnbd: const <ConstantData>[
const ConstantData('const C1<A>(const A())',
'ConstructedConstant(C1<A>(a=ConstructedConstant(A())))'),
const ConstantData(
'const C2<A>(id)',
'ConstructedConstant(C2<A>(a='
'InstantiationConstant([A],FunctionConstant(id))))'),
], constantsNnbdWeak: const <ConstantData>[
const ConstantData('const C1<A>(const A())',
''', <ConstantData>[
ConstantData('const C1<A>(A())',
'ConstructedConstant(C1<A*>(a=ConstructedConstant(A())))'),
const ConstantData(
ConstantData(
'const C2<A>(id)',
'ConstructedConstant(C2<A*>(a='
'InstantiationConstant([A*],FunctionConstant(id))))'),
]),
const TestData('unused-arguments', '''
TestData('unused-arguments', '''
class A {
const A();
@ -589,31 +517,20 @@ class Class<T extends A> {
class Subclass<T extends A> extends Class<T> {
const Subclass(dynamic t) : super(t);
}
''', constantsCommon: [
const ConstantData('const Class<B>.redirect(const C())', 'NonConstant',
''', [
ConstantData('const Class<B>.redirect(C())', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
const ConstantData('const Class<A>.method(const A())', 'NonConstant',
ConstantData('const Class<A>.method(A())', 'NonConstant',
expectedErrors: 'ConstEvalInvalidMethodInvocation'),
const ConstantData('const Subclass<B>(const C())', 'NonConstant',
ConstantData('const Subclass<B>(C())', 'NonConstant',
expectedErrors: 'ConstEvalInvalidType'),
], constantsPreNnbd: const <ConstantData>[
const ConstantData(
'const Class<A>(const A())', 'ConstructedConstant(Class<A>())'),
const ConstantData('const Class<B>.redirect(const B())',
'ConstructedConstant(Class<B>())'),
const ConstantData(
'const Subclass<A>(const A())', 'ConstructedConstant(Subclass<A>())'),
const ConstantData(
'const Subclass<B>(const B())', 'ConstructedConstant(Subclass<B>())'),
], constantsNnbdWeak: const <ConstantData>[
const ConstantData(
'const Class<A>(const A())', 'ConstructedConstant(Class<A*>())'),
const ConstantData('const Class<B>.redirect(const B())',
'ConstructedConstant(Class<B*>())'),
const ConstantData(
'const Subclass<A>(const A())', 'ConstructedConstant(Subclass<A*>())'),
const ConstantData(
'const Subclass<B>(const B())', 'ConstructedConstant(Subclass<B*>())'),
ConstantData('const Class<A>(A())', 'ConstructedConstant(Class<A*>())'),
ConstantData(
'const Class<B>.redirect(B())', 'ConstructedConstant(Class<B*>())'),
ConstantData(
'const Subclass<A>(A())', 'ConstructedConstant(Subclass<A*>())'),
ConstantData(
'const Subclass<B>(B())', 'ConstructedConstant(Subclass<B*>())'),
]),
];
@ -636,7 +553,7 @@ Future testData(TestData data) async {
names.add(name);
// Encode the constants as part of a from-environment conditional to force
// CFE to create unevaluated constants.
sb.writeln('const $name = const bool.fromEnvironment("x") ? '
sb.writeln('const $name = bool.fromEnvironment("x") ? '
'null : ${constantData.code};');
constants[name] = constantData;
});

View file

@ -9,7 +9,6 @@ import 'package:compiler/src/commandline_options.dart';
import 'package:compiler/src/elements/entities.dart';
import 'package:compiler/src/elements/types.dart';
import 'package:expect/expect.dart';
import '../helpers/memory_compiler.dart';
import '../helpers/type_test_helper.dart';
main() {
@ -114,8 +113,8 @@ main() {
futureOrT.forEachTypeVariable((t) => Expect.equals(T, t));
DartType returnVoid = getFunctionType('returnVoid', 'void Function()');
DartType returnFutureNull = getFunctionType('futureOrNull',
isDart2jsNnbd ? 'Future<Null>? Function()' : 'Future<Null> Function()');
DartType returnFutureNull =
getFunctionType('futureOrNull', 'Future<Null>? Function()');
List<DartType> all = [
Object_,

View file

@ -59,23 +59,7 @@ main() {
}
''';
Map<String, Impact> expectedImpactMapNnbdOff = <String, Impact>{
'method1': const Impact(),
'method2': new Impact(implicitCasts: ['int']),
'method3': new Impact(parameterChecks: ['int']),
'method4': new Impact(asCasts: ['int']),
'method5': const Impact(),
'method6': const Impact(),
'method7': const Impact(),
'method8': const Impact(),
'method9': new Impact(implicitCasts: ['int']),
'method10': const Impact(),
'method11': const Impact(),
'method12': const Impact(),
'method13': new Impact(implicitCasts: ['int'], parameterChecks: ['String']),
};
Map<String, Impact> expectedImpactMapNnbdOn = <String, Impact>{
Map<String, Impact> expectedImpactMap = <String, Impact>{
'method1': const Impact(),
'method2': new Impact(implicitCasts: ['int*']),
'method3': new Impact(parameterChecks: ['int*']),
@ -92,8 +76,6 @@ main() {
new Impact(implicitCasts: ['int*'], parameterChecks: ['String*']),
};
Map<String, Impact> expectedImpactMap =
isDart2jsNnbd ? expectedImpactMapNnbdOn : expectedImpactMapNnbdOff;
retainDataForTesting = true;
CompilationResult result = await runCompiler(
memorySourceFiles: {'main.dart': source},

View file

@ -54,8 +54,7 @@ class ViewCardComponent2 extends AppView<CardComponent2> {
}
}
/*spec:nnbd-off.member: main:*/
/*prod:nnbd-off|prod:nnbd-sdk.member: main:FieldSet=[name=AppView.ctx,name=AppView.ctx]*/
/*prod.member: main:FieldSet=[name=AppView.ctx]*/
main() {
var c1 = new ViewCardComponent();
c1.ctx = new CardComponent();

View file

@ -39,8 +39,8 @@ mutableListDynamicIndex(dynamic index) {
return list[index]; // CFE inserts an implicit cast of the index.
}
/*spec:nnbd-off.member: mutableDynamicListDynamicIndex:Specializer=[!Index]*/
/*prod:nnbd-off|prod:nnbd-sdk.member: mutableDynamicListDynamicIndex:Specializer=[Index]*/
/*spec.member: mutableDynamicListDynamicIndex:Specializer=[!Index]*/
/*prod.member: mutableDynamicListDynamicIndex:Specializer=[Index]*/
@pragma('dart2js:noInline')
@pragma('dart2js:disableFinal')
mutableDynamicListDynamicIndex(dynamic index) {

View file

@ -10,39 +10,39 @@ dynamicIndexAssign(var list) {
list[0] = 1;
}
/*spec:nnbd-off.member: unknownListIndexAssign:Specializer=[!IndexAssign]*/
/*prod:nnbd-off|prod:nnbd-sdk.member: unknownListIndexAssign:Specializer=[IndexAssign]*/
/*spec.member: unknownListIndexAssign:Specializer=[!IndexAssign]*/
/*prod.member: unknownListIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
unknownListIndexAssign(List list) {
list[0] = 1;
}
/*spec:nnbd-off.member: possiblyNullMutableListIndexAssign:Specializer=[!IndexAssign]*/
/*prod:nnbd-off|prod:nnbd-sdk.member: possiblyNullMutableListIndexAssign:Specializer=[IndexAssign]*/
/*spec.member: possiblyNullMutableListIndexAssign:Specializer=[!IndexAssign]*/
/*prod.member: possiblyNullMutableListIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
possiblyNullMutableListIndexAssign(bool b) {
var list = b ? [0] : null;
list[0] = 1;
}
/*spec:nnbd-off.member: mutableListIndexAssign:Specializer=[!IndexAssign]*/
/*prod:nnbd-off|prod:nnbd-sdk.member: mutableListIndexAssign:Specializer=[IndexAssign]*/
/*spec.member: mutableListIndexAssign:Specializer=[!IndexAssign]*/
/*prod.member: mutableListIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
mutableListIndexAssign() {
var list = [0];
list[0] = 1;
}
/*spec:nnbd-off.member: mutableListDynamicIndexAssign:Specializer=[!IndexAssign]*/
/*prod:nnbd-off|prod:nnbd-sdk.member: mutableListDynamicIndexAssign:Specializer=[IndexAssign]*/
/*spec.member: mutableListDynamicIndexAssign:Specializer=[!IndexAssign]*/
/*prod.member: mutableListDynamicIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
mutableListDynamicIndexAssign(dynamic index) {
var list = [0];
list[index] = 1;
}
/*spec:nnbd-off.member: mutableListDynamicValueIndexAssign:Specializer=[!IndexAssign]*/
/*prod:nnbd-off|prod:nnbd-sdk.member: mutableListDynamicValueIndexAssign:Specializer=[IndexAssign]*/
/*spec.member: mutableListDynamicValueIndexAssign:Specializer=[!IndexAssign]*/
/*prod.member: mutableListDynamicValueIndexAssign:Specializer=[IndexAssign]*/
@pragma('dart2js:noInline')
mutableListDynamicValueIndexAssign(dynamic value) {
var list = [0];

View file

@ -1,4 +1,2 @@
spec:nnbd-off=pkg/compiler/test/optimization/optimization_test.dart
prod:nnbd-off=pkg/compiler/test/optimization/optimization_test.dart
spec:nnbd-sdk=pkg/compiler/test/optimization/optimization_test.dart
prod:nnbd-sdk=pkg/compiler/test/optimization/optimization_test.dart
spec=pkg/compiler/test/optimization/optimization_test.dart
prod=pkg/compiler/test/optimization/optimization_test.dart

View file

@ -14,8 +14,7 @@ class Foo<T extends num> {}
/*class: Bar:*/
class Bar<T extends num> {}
/*spec:nnbd-off|prod:nnbd-off.class: Baz:explicit=[Baz<num>],needsArgs*/
/*spec:nnbd-sdk|prod:nnbd-sdk.class: Baz:explicit=[Baz<num*>*],needsArgs*/
/*class: Baz:explicit=[Baz<num*>*],needsArgs*/
class Baz<T extends num> {}
@pragma('dart2js:disableFinal')

View file

@ -4,9 +4,8 @@
// @dart = 2.7
/*spec:nnbd-off.class: Class:direct,explicit=[Class.T],implicit=[Class.T],needsArgs*/
/*prod:nnbd-off|prod:nnbd-sdk.class: Class:needsArgs*/
/*spec:nnbd-sdk.class: Class:direct,explicit=[Class.T*],implicit=[Class.T],needsArgs*/
/*spec.class: Class:direct,explicit=[Class.T*],implicit=[Class.T],needsArgs*/
/*prod.class: Class:needsArgs*/
class Class<T> {
method() {
var list = <T>[];

View file

@ -4,15 +4,14 @@
// @dart = 2.7
/*spec:nnbd-off.class: Class:direct,explicit=[Class.T],implicit=[Class.T],needsArgs*/
/*spec:nnbd-sdk.class: Class:direct,explicit=[Class.T*],implicit=[Class.T],needsArgs*/
/*spec.class: Class:direct,explicit=[Class.T*],implicit=[Class.T],needsArgs*/
class Class<T> {
method() {
var list = <T>[];
// If any method was `async`, this would have triggered the need for type
// arguments on `Class`. See the 'async_foreach.dart' test.
list.forEach(
/*spec:nnbd-off|spec:nnbd-sdk.needsSignature*/
/*spec.needsSignature*/
(x) => print(x));
}
}

View file

@ -4,8 +4,7 @@
// @dart = 2.7
/*spec:nnbd-off.class: Class:explicit=[Class<int>],needsArgs*/
/*spec:nnbd-sdk.class: Class:explicit=[Class<int*>*],needsArgs*/
/*spec.class: Class:explicit=[Class<int*>*],needsArgs*/
class Class<T> {}
main() async {
@ -14,7 +13,7 @@ main() async {
// `dynamic Function(dynamic, Class<int>)`, is not a potential subtype and
// therefore doesn't need its signature.
/*spec:nnbd-off|spec:nnbd-sdk.needsSignature*/
/*spec.needsSignature*/
local(object, Class<int> stacktrace) => null;
return local;

Some files were not shown because too many files have changed in this diff Show more