anchor.diff:  
     const C(this.defaultValue, this.identityFunction);
   }
  -  ''', const <ConstantData>[
  +  ''', constantsCommon: [
       const ConstantData('identity', 'FunctionConstant(identity)'),
  +  ], constantsPreNnbd: const <ConstantData>[
       const ConstantData(
           'const C<int>(0, identity)',
           'ConstructedConstant(C<int>(defaultValue=IntConstant(0),'
  
positive.code: class Subclass<T extends A> extends Class<T> {
    const Subclass(dynamic t) : super(t);
  }
  ''', 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 Class<B>.redirect(const C())', 'NonConstant',
          expectedErrors: 'ConstEvalInvalidType'),
      const ConstantData('const Class<A>.method(const A())', 'NonConstant',
          expectedErrors: 'ConstEvalInvalidMethodInvocation'),
      const ConstantData(
          'const Subclass<A>(const A())', 'ConstructedConstant(Subclass<A>())'),
      const ConstantData(
          'const Subclass<B>(const B())', 'ConstructedConstant(Subclass<B>())'),
      const ConstantData('const Subclass<B>(const C())', 'NonConstant',
          expectedErrors: 'ConstEvalInvalidType'),
    ]),
  ];
  
  
negative.code:           const {}: 'StringConstant("bar")',
            const {'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(
          '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)})'),
    ]),
    const TestData('env', '''
  const a = const bool.fromEnvironment("foo", defaultValue: true);
  