|  | // 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. | 
|  |  | 
|  | /*@testedFeatures=inference*/ | 
|  | library test; | 
|  |  | 
|  | class C {} | 
|  |  | 
|  | class D {} | 
|  |  | 
|  | class E {} | 
|  |  | 
|  | void test(void f()) { | 
|  | try { | 
|  | var /*@type=int*/ x = 0; | 
|  | f(); | 
|  | } on C { | 
|  | var /*@type=int*/ x = 0; | 
|  | } on D catch (x) { | 
|  | var /*@type=D*/ x2 = x; | 
|  | } on E catch (x, y) { | 
|  | var /*@type=E*/ x2 = x; | 
|  | var /*@type=StackTrace*/ y2 = y; | 
|  | } catch (x, y) { | 
|  | var /*@type=dynamic*/ x2 = x; | 
|  | var /*@type=StackTrace*/ y2 = y; | 
|  | } | 
|  | } | 
|  |  | 
|  | main() {} |