| // Copyright (c) 2017, 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.9 | 
 | /*@testedFeatures=inference*/ | 
 | library test; | 
 |  | 
 | class A { | 
 |   final String foo; | 
 |  | 
 |   A(this.foo); | 
 |  | 
 |   bool operator ==(Object other) => | 
 |       other is A && /*@ promotedType=A* */ other | 
 |               . /*@target=A.foo*/ foo /*@target=String.==*/ == | 
 |           this. /*@target=A.foo*/ foo; | 
 | } | 
 |  | 
 | main() { | 
 |   print(new A("hello") /*@target=A.==*/ == new A("hello")); | 
 | } |