// 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 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; } finally { var /*@ type=int* */ x = 0; } } main() {}