return base.DoResolveMembers ();
}
+ public void CaptureScopes ()
+ {
+ Report.Debug (128, "DEFINE ITERATOR HOST", this, scopes);
+
+ foreach (ScopeInfo si in scopes)
+ CaptureScope (si);
+
+ foreach (ScopeInfo si in scopes) {
+ if (!si.Define ())
+ throw new InternalErrorException ();
+ if (si.DefineType () == null)
+ throw new InternalErrorException ();
+ if (!si.ResolveType ())
+ throw new InternalErrorException ();
+ if (!si.ResolveMembers ())
+ throw new InternalErrorException ();
+ if (!si.DefineMembers ())
+ throw new InternalErrorException ();
+ }
+ }
+
protected override bool DoDefineMembers ()
{
if (!base.DoDefineMembers ())
Accessor getter = new Accessor (get_block, 0, null, Location);
Property current = new Property (
- this, type, 0, false, name, null, getter, null);
+ this, type, 0, false, name, null, getter, null, false);
AddProperty (current);
}
//
// Our constructor
//
- public Iterator (IMethodData m_container, TypeContainer host, GenericMethod generic,
+ private Iterator (IMethodData m_container, DeclSpace host, GenericMethod generic,
int modifiers, Type iterator_type, bool is_enumerable)
: base (null, host, generic, m_container.ParameterInfo,
new ToplevelBlock (m_container.ParameterInfo, m_container.Location),
protected override Method DoCreateMethodHost (EmitContext ec)
{
+ Report.Debug (128, "CREATE METHOD HOST", this, IteratorHost);
+
+ IteratorHost.CaptureScopes ();
+
return new AnonymousMethodMethod (
this, RootScope, null, TypeManager.system_boolean_expr,
Modifiers.PUBLIC, new MemberName ("MoveNext", Location),
}
}
- public static Iterator CreateIterator (IMethodData method, TypeContainer parent,
+ public static Iterator CreateIterator (IMethodData method, DeclSpace parent,
GenericMethod generic, int modifiers)
{
bool is_enumerable;