methods/bug642885.vala \
methods/bug642899.vala \
methods/bug646345.vala \
+ methods/bug648030.test \
methods/bug648320.vala \
methods/bug649562.vala \
methods/bug652098.vala \
--- /dev/null
+Invalid Code
+
+const int FOO = 1;
+
+public void foo (int bar = FOO) {
+}
+
+void main () {
+ foo ();
+}
return inner.is_pure ();
}
+ public override bool is_accessible (Symbol sym) {
+ return inner.is_accessible (sym);
+ }
+
public override bool check (CodeContext context) {
if (checked) {
return !error;
return false;
}
+ public override bool is_accessible (Symbol sym) {
+ foreach (Expression e in sizes) {
+ if (!e.is_accessible (sym)) {
+ return false;
+ }
+ }
+
+ if (initializer_list != null) {
+ return initializer_list.is_accessible (sym);
+ }
+
+ return true;
+ }
+
public override void replace_expression (Expression old_node, Expression new_node) {
for (int i = 0; i < sizes.size; i++) {
if (sizes[i] == old_node) {
return false;
}
+ public override bool is_accessible (Symbol sym) {
+ return left.is_accessible (sym) && right.is_accessible (sym);
+ }
+
public override bool check (CodeContext context) {
if (checked) {
return !error;
return left.is_non_null () && right.is_non_null ();
}
+ public override bool is_accessible (Symbol sym) {
+ return left.is_accessible (sym) && right.is_accessible (sym);
+ }
+
public override bool check (CodeContext context) {
if (checked) {
return !error;
return inner.is_pure ();
}
+ public override bool is_accessible (Symbol sym) {
+ return inner.is_accessible (sym);
+ }
+
public override void replace_type (DataType old_type, DataType new_type) {
if (type_reference == old_type) {
type_reference = new_type;
return condition.is_pure () && true_expression.is_pure () && false_expression.is_pure ();
}
+ public override bool is_accessible (Symbol sym) {
+ return condition.is_accessible (sym) && true_expression.is_accessible (sym) && false_expression.is_accessible (sym);
+ }
+
public override bool check (CodeContext context) {
if (checked) {
return !error;
return container.is_pure ();
}
+ public override bool is_accessible (Symbol sym) {
+ foreach (Expression index in indices) {
+ if (!index.is_accessible (sym)) {
+ return false;
+ }
+ }
+
+ return container.is_accessible (sym);
+ }
+
public override bool check (CodeContext context) {
if (checked) {
return !error;
return false;
}
+ /**
+ * Check whether symbol_references in this expression are at least
+ * as accessible as the specified symbol.
+ */
+ public virtual bool is_accessible (Symbol sym) {
+ return true;
+ }
+
public Statement? parent_statement {
get {
var expr = parent_node as Expression;
return true;
}
+ public override bool is_accessible (Symbol sym) {
+ foreach (Expression initializer in initializers) {
+ if (!initializer.is_accessible (sym)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
public override void replace_expression (Expression old_node, Expression new_node) {
for (int i = 0; i < initializers.size; i++) {
if (initializers[i] == old_node) {
return (inner == null || inner.is_pure ()) && !(symbol_reference is Property);
}
+ public override bool is_accessible (Symbol sym) {
+ return (inner == null || inner.is_accessible (sym)) && symbol_reference.is_accessible (sym);
+ }
+
public override void replace_type (DataType old_type, DataType new_type) {
for (int i = 0; i < type_argument_list.size; i++) {
if (type_argument_list[i] == old_type) {
return false;
}
+ public override bool is_accessible (Symbol sym) {
+ foreach (var arg in argument_list) {
+ if (!arg.is_accessible (sym)) {
+ return false;
+ }
+ }
+
+ return call.is_accessible (sym);
+ }
+
bool is_chainup () {
if (!(call.symbol_reference is CreationMethod)) {
return false;
return false;
}
+ public override bool is_accessible (Symbol sym) {
+ if (member_name != null && !member_name.is_accessible (sym)) {
+ return false;
+ }
+
+ foreach (var arg in argument_list) {
+ if (!arg.is_accessible (sym)) {
+ return false;
+ }
+ }
+
+ foreach (var init in object_initializer) {
+ if (!init.initializer.is_accessible (sym)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
public override void replace_type (DataType old_type, DataType new_type) {
if (type_reference == old_type) {
type_reference = new_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");
+ } else if (!initializer.is_accessible (this)) {
+ Report.error (initializer.source_reference, "default value is less accessible than method `%s'".printf (parent_symbol.get_full_name ()));
}
}
return inner.is_pure ();
}
+ public override bool is_accessible (Symbol sym) {
+ return inner.is_accessible (sym);
+ }
+
public override bool check (CodeContext context) {
if (checked) {
return !error;
return false;
}
+ public override bool is_accessible (Symbol sym) {
+ return inner.is_accessible (sym);
+ }
+
public override void get_defined_variables (Collection<Variable> collection) {
inner.get_defined_variables (collection);
var local = inner.symbol_reference as LocalVariable;
return false;
}
+ public override bool is_accessible (Symbol sym) {
+ return inner.is_accessible (sym);
+ }
+
public override bool check (CodeContext context) {
if (checked) {
return !error;
return false;
}
+ public override bool is_accessible (Symbol sym) {
+ return container.is_accessible (sym) && start.is_accessible (sym) && stop.is_accessible (sym);
+ }
+
public override bool check (CodeContext context) {
if (checked) {
return !error;
return inner.is_pure ();
}
+ public override bool is_accessible (Symbol sym) {
+ return inner.is_accessible (sym);
+ }
+
bool is_numeric_type (DataType type) {
if (!(type.data_type is Struct)) {
return false;