void ProcessParameters () { int n = parameters.Count; parameter_info = new ToplevelParameterInfo [n]; ToplevelBlock top_parent = Parent == null ? null : Parent.Toplevel; for (int i = 0; i < n; ++i) { parameter_info [i] = new ToplevelParameterInfo (this, i); Parameter p = parameters [i]; if (p == null) continue; string name = p.Name; if (CheckParentConflictName (top_parent, name, loc)) AddKnownVariable (name, parameter_info [i]); } // mark this block as "used" so that we create local declarations in a sub-block // FIXME: This appears to uncover a lot of bugs //this.Use (); }
public ParameterReference (ToplevelParameterInfo pi, Location loc) { this.pi = pi; this.loc = loc; }