public override void VisitDeclarationClass(DeclarationClass n) { _itemIncrementer = 0; _currentClass = new TypeClass(n.Name); var classScope = _mgr.PushScope(string.Format("class {0}", _currentClass.ClassName)); _currentClass.Descriptor = (ClassDescriptor)_mgr.Find(n.Name, p => p is ClassDescriptor); if (n.Statements != null) { CheckSubTree(n.Statements); } n.Type = _currentClass; _currentClass.Descriptor.Scope = _currentClass.Scope = classScope; AddCtorIfNone(classScope, n.Name); _mgr.PopScope(); }