delegates/implicit-local-variable.vala \
delegates/incompatible.test \
delegates/incompatible-assignment.test \
+ delegates/incompatible-error-assignment.test \
delegates/incompatible-initializer.test \
delegates/incompatible-target.test \
delegates/instance-method-to-no-target.test \
--- /dev/null
+Invalid Code
+
+errordomain FooError {
+ FAIL;
+}
+
+errordomain BarError {
+ FAIL;
+}
+
+delegate void FooFunc () throws FooError;
+
+delegate void BarFunc () throws BarError;
+
+void main () {
+ FooFunc f = () => { throw new FooError.FAIL (""); };
+ BarFunc b = f;
+}
// target-delegate may throw less but not more errors than the delegate
var error_types = new ArrayList<DataType> ();
- get_error_types (error_types);
+ delegate_symbol.get_error_types (error_types);
foreach (DataType error_type in error_types) {
bool match = false;
var delegate_error_types = new ArrayList<DataType> ();
- dt_target.get_error_types (delegate_error_types);
+ dt_target.delegate_symbol.get_error_types (delegate_error_types);
foreach (DataType delegate_error_type in delegate_error_types) {
if (error_type.compatible (delegate_error_type)) {
match = true;