|  | // Copyright (c) 2016, 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. | 
|  |  | 
|  | library dart2js.constants.values.test; | 
|  |  | 
|  | import 'package:async_helper/async_helper.dart'; | 
|  | import 'package:compiler/src/elements/names.dart'; | 
|  | import 'package:expect/expect.dart'; | 
|  | import 'package:compiler/src/elements/entities.dart'; | 
|  | import 'package:compiler/src/elements/types.dart'; | 
|  | import 'package:compiler/src/constants/values.dart'; | 
|  | import 'package:compiler/src/diagnostics/invariant.dart' show DEBUG_MODE; | 
|  | import '../helpers/type_test_helper.dart'; | 
|  |  | 
|  | void main() { | 
|  | DEBUG_MODE = true; | 
|  |  | 
|  | asyncTest(() async { | 
|  | TypeEnvironment env = await TypeEnvironment.create(""" | 
|  | class C { | 
|  | final field1; | 
|  | final field2; | 
|  |  | 
|  | C(this.field1, this.field2); | 
|  | } | 
|  |  | 
|  | main() => C(null, null); | 
|  | """); | 
|  | ClassEntity C = env.getClass('C'); | 
|  | InterfaceType C_raw = env.elementEnvironment.getRawType(C); | 
|  | final field1 = env.elementEnvironment | 
|  | .lookupClassMember(C, PublicName('field1')) as FieldEntity; | 
|  | final field2 = env.elementEnvironment | 
|  | .lookupClassMember(C, PublicName('field2')) as FieldEntity; | 
|  | ConstructedConstantValue value1 = ConstructedConstantValue(C_raw, { | 
|  | field1: IntConstantValue(BigInt.zero), | 
|  | field2: IntConstantValue(BigInt.one), | 
|  | }); | 
|  | ConstantValue value2 = ConstructedConstantValue(C_raw, { | 
|  | field2: IntConstantValue(BigInt.one), | 
|  | field1: IntConstantValue(BigInt.zero), | 
|  | }); | 
|  | Expect.equals(value1.hashCode, value2.hashCode, "Hashcode mismatch."); | 
|  | Expect.equals(value1, value2, "Value mismatch."); | 
|  | }); | 
|  | } |