override public void OnLabelStatement(LabelStatement node) { AstAnnotations.SetTryBlockDepth(node, _state.TryBlockDepth); if (_state.ResolveLabel(node.Name) != null) { Error(CompilerErrorFactory.LabelAlreadyDefined(node, _currentMethod, node.Name)); return; } _state.AddLabel(new InternalLabel(node)); }
override public void OnLabelStatement(LabelStatement node) { AstAnnotations.SetTryBlockDepth(node, _state.CurrentTryBlockDepth); if (null == _state.ResolveLabel(node.Name)) { _state.AddLabel(new InternalLabel(node)); } else { Error( CompilerErrorFactory.LabelAlreadyDefined(node, _currentMethod.FullName, node.Name)); } }
override public void OnGotoStatement(GotoStatement node) { AstAnnotations.SetTryBlockDepth(node, _state.CurrentTryBlockDepth); _state.AddLabelReference(node.Label); }