summaryrefslogtreecommitdiff
path: root/vala/valaparameter.vala
diff options
context:
space:
mode:
authorFlorian Brosch <flo.brosch@gmail.com>2012-01-24 21:14:35 +0100
committerJürg Billeter <j@bitron.ch>2012-01-26 21:20:39 +0100
commitddfac77ab73e8a1d10070f08fa2120b5cf3713bb (patch)
treed1137977f9a2e24d5c1a45622bf8f0e41bbd6249 /vala/valaparameter.vala
parentcb18370fc70efe1e0b9c935b7032970fafd36ca3 (diff)
downloadvala-ddfac77ab73e8a1d10070f08fa2120b5cf3713bb.tar.gz
Check type of default arguments
Diffstat (limited to 'vala/valaparameter.vala')
-rw-r--r--vala/valaparameter.vala2
1 files changed, 2 insertions, 0 deletions
diff --git a/vala/valaparameter.vala b/vala/valaparameter.vala
index e34b773f2..22fe0c8ae 100644
--- a/vala/valaparameter.vala
+++ b/vala/valaparameter.vala
@@ -154,6 +154,8 @@ public class Vala.Parameter : Variable {
Report.warning (source_reference, "`null' incompatible with parameter type `%s`".printf (variable_type.to_string ()));
} else if (!(initializer is NullLiteral) && direction == ParameterDirection.OUT) {
Report.error (source_reference, "only `null' is allowed as default value for out parameters");
+ } else if (direction == ParameterDirection.IN && !initializer.value_type.compatible (variable_type)) {
+ Report.error (initializer.source_reference, "Cannot convert from `%s' to `%s'".printf (initializer.value_type.to_string (), variable_type.to_string ()));
} else if (direction == ParameterDirection.REF) {
Report.error (source_reference, "default value not allowed for ref parameter");
}