public ClassScope(ClassInfo classInfo) : base(classInfo) { }
public InstanceInfo(ClassInfo classInfo) { _classInfo = classInfo; }
// TODO: What about names being redefined? // remember classes/functions as they start new scopes public override bool Walk(ClassDefinition node) { if (node.Body == null || node.Name == null) { return false; } var queue = _entry.ProjectState.Queue; var scopes = new InterpreterScope[_scopes.Count + 1]; _scopes.CopyTo(scopes); _analysisStack.Push(_curUnit); var unit = _curUnit = new AnalysisUnit(node, scopes, _curUnit); var klass = new ClassInfo(unit, _entry); var classScope = klass.Scope; var scope = _scopes.Peek(); scope.SetVariable(node, unit, node.Name, klass.SelfSet); _scopes.Push(classScope); scopes[scopes.Length - 1] = classScope; // TODO: Add parameters for __new__/__init__ PushPositionScope(node, classScope); return true; }
public InstanceInfo(ClassInfo classInfo) { _classInfo = classInfo; }