|  | // Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | // @dart=2.6 | 
|  |  | 
|  | /*library: nnbd=false*/ | 
|  | library test; | 
|  |  | 
|  | T id<T>(T /*normal|limited.id.T**/ /*verbose.test::id.T**/ t) => t; | 
|  |  | 
|  | class Class1<T> { | 
|  | const Class1(); | 
|  | } | 
|  |  | 
|  | class Class2<T> { | 
|  | final T field1; | 
|  |  | 
|  | const Class2( | 
|  | this. /*normal|limited.Class2.T**/ /*verbose.test::Class2.T**/ field1); | 
|  | } | 
|  |  | 
|  | class Class3<T, S> extends Class2<T> { | 
|  | final S field2; | 
|  |  | 
|  | const Class3( | 
|  | T /*normal|limited.Class3.T**/ /*verbose.test::Class3.T**/ field1, | 
|  | this. /*normal|limited.Class3.S**/ /*verbose.test::Class3.S**/ field2) | 
|  | : super(field1); | 
|  | } | 
|  |  | 
|  | class Class4<T, S> extends Class3<T, S> { | 
|  | final S field2; | 
|  |  | 
|  | const Class4( | 
|  | T /*normal|limited.Class4.T**/ /*verbose.test::Class4.T**/ field1, | 
|  | S /*normal|limited.Class4.S**/ /*verbose.test::Class4.S**/ shadowedField2, | 
|  | this. /*normal|limited.Class4.S**/ /*verbose.test::Class4.S**/ field2) | 
|  | : super(field1, shadowedField2); | 
|  | } | 
|  |  | 
|  | const nullConstant = /*null*/ null; | 
|  | const trueConstant = /*true*/ true; | 
|  | const falseConstant = /*false*/ false; | 
|  | const intConstant = /*42*/ 42; | 
|  | const doubleConstant = /*3.14*/ 3.14; | 
|  | const stringConstant = /*"foo"*/ "foo"; | 
|  | const symbolConstant = /*#name*/ #name; | 
|  | const privateSymbolConstant = | 
|  | /*normal|limited.#_privateName*/ | 
|  | /*verbose.#test::_privateName*/ | 
|  | #_privateName; | 
|  | const listConstant1 = /*const <dynamic>[]*/ []; | 
|  | const listConstant2 = < | 
|  | int> /*normal|limited.const <int*>[]*/ /*verbose.const <dart.core::int*>[]*/ []; | 
|  | const listConstant3 = < | 
|  | int> /*normal|limited.const <int*>[0]*/ /*verbose.const <dart.core::int*>[0]*/ [ | 
|  | 0 | 
|  | ]; | 
|  | const listConstant4 = < | 
|  | int> /*normal|limited.const <int*>[0, 1]*/ /*verbose.const <dart.core::int*>[0, 1]*/ [ | 
|  | 0, | 
|  | 1 | 
|  | ]; | 
|  | const setConstant1 = < | 
|  | int> /*normal|limited.const <int*>{}*/ /*verbose.const <dart.core::int*>{}*/ {}; | 
|  | const setConstant2 = < | 
|  | int> /*normal|limited.const <int*>{0}*/ /*verbose.const <dart.core::int*>{0}*/ { | 
|  | 0 | 
|  | }; | 
|  | const setConstant3 = < | 
|  | int> /*normal|limited.const <int*>{0, 1}*/ /*verbose.const <dart.core::int*>{0, 1}*/ { | 
|  | 0, | 
|  | 1 | 
|  | }; | 
|  | const mapConstant1 = /*const <dynamic, dynamic>{}*/ {}; | 
|  | const mapConstant2 = <int, String> | 
|  | /*normal|limited.const <int*, String*>{}*/ | 
|  | /*verbose.const <dart.core::int*, dart.core::String*>{}*/ | 
|  | {}; | 
|  | const mapConstant3 = <int, String> | 
|  | /*normal|limited.const <int*, String*>{0: "foo"}*/ | 
|  | /*verbose.const <dart.core::int*, dart.core::String*>{0: "foo"}*/ | 
|  | {0: "foo"}; | 
|  | const mapConstant4 = <int, String> | 
|  | /*normal|limited.const <int*, String*>{0: "foo", 1: "bar"}*/ | 
|  | /*verbose.const <dart.core::int*, dart.core::String*>{0: "foo", 1: "bar"}*/ | 
|  | {0: "foo", 1: "bar"}; | 
|  | const tearOffConstant = /*normal|limited.id*/ /*verbose.test::id*/ id; | 
|  | const int Function(int) partialInitializationConstant = | 
|  | /*normal|limited.id<int*>*/ | 
|  | /*verbose.test::id<dart.core::int*>*/ | 
|  | id; | 
|  | const boolHasEnvironmentConstant = const | 
|  | /*normal|limited.unevaluated{bool.hasEnvironment("foo")}*/ | 
|  | /*verbose.unevaluated{{org-dartlang-test:///a/b/c/main.dart}dart.core::bool.hasEnvironment("foo")}*/ | 
|  | bool.hasEnvironment("foo"); | 
|  | const boolFromEnvironmentConstant = const | 
|  | /*normal|limited.unevaluated{bool.fromEnvironment("foo", defaultValue: true)}*/ | 
|  | /*verbose.unevaluated{{org-dartlang-test:///a/b/c/main.dart}dart.core::bool.fromEnvironment("foo", defaultValue: true)}*/ | 
|  | bool.fromEnvironment("foo", defaultValue: true); | 
|  | const intFromEnvironmentConstant = const | 
|  | /*normal|limited.unevaluated{int.fromEnvironment("foo", defaultValue: 87)}*/ | 
|  | /*verbose.unevaluated{{org-dartlang-test:///a/b/c/main.dart}dart.core::int.fromEnvironment("foo", defaultValue: 87)}*/ | 
|  | int.fromEnvironment("foo", defaultValue: 87); | 
|  | const stringFromEnvironmentConstant = const | 
|  | /*normal|limited.unevaluated{String.fromEnvironment("foo", defaultValue: "bar")}*/ | 
|  | /*verbose.unevaluated{{org-dartlang-test:///a/b/c/main.dart}dart.core::String.fromEnvironment("foo", defaultValue: "bar")}*/ | 
|  | String.fromEnvironment("foo", defaultValue: "bar"); | 
|  | const instanceConstant1 = const | 
|  | /*normal|limited.const Class1<dynamic>{}*/ | 
|  | /*verbose.const test::Class1<dynamic>{}*/ | 
|  | Class1(); | 
|  | const instanceConstant2 = const | 
|  | /*normal|limited.const Class1<int*>{}*/ | 
|  | /*verbose.const test::Class1<dart.core::int*>{}*/ | 
|  | Class1<int>(); | 
|  | const instanceConstant3 = const | 
|  | /*normal|limited.const Class1<int*>{}*/ | 
|  | /*verbose.const test::Class1<dart.core::int*>{}*/ | 
|  | Class1<int>(); | 
|  | const instanceConstant4 = const | 
|  | /*normal|limited.const Class2<int*>{Class2.field1: 0}*/ | 
|  | /*verbose.const test::Class2<dart.core::int*>{test::Class2.field1: 0}*/ | 
|  | Class2(0); | 
|  | const instanceConstant5 = const | 
|  | /*normal|limited.const Class2<num*>{Class2.field1: 42}*/ | 
|  | /*verbose.const test::Class2<dart.core::num*>{test::Class2.field1: 42}*/ | 
|  | Class2<num>(42); | 
|  | const instanceConstant6 = const | 
|  | /*normal|limited.const Class3<int*, String*>{Class3.field2: "foo", Class2.field1: 42}*/ | 
|  | /*verbose.const test::Class3<dart.core::int*, dart.core::String*>{test::Class3.field2: "foo", test::Class2.field1: 42}*/ | 
|  | Class3<int, String>(42, "foo"); | 
|  | const instanceConstant7 = const | 
|  | /*normal|limited.const Class4<int*, String*>{Class4.field2: "baz", Class3.field2: "foo", Class2.field1: 42}*/ | 
|  | /*verbose.const test::Class4<dart.core::int*, dart.core::String*>{test::Class4.field2: "baz", test::Class3.field2: "foo", test::Class2.field1: 42}*/ | 
|  | Class4<int, String>(42, "foo", "baz"); |