private void resolveGetIdentifier(Context ctx, GetIdentifierNode node) { var nameInfo = ctx.CurrentScope.FindName(node.Identifier); if (nameInfo != null) { resolveExpression(ctx, node); return; } try { m_Method = ctx.ResolveMethod(ctx.MainType.TypeInfo, node.Identifier, m_ArgTypes); if (m_Method == null) throw new KeyNotFoundException(); if(m_ArgTypes.Length == 0 && EnumerableExtensions.IsAnyOf(node.Identifier, EntityNames.RunMethodName, EntityNames.EntryPointMethodName)) Error(CompilerMessages.ReservedFunctionInvocation, node.Identifier); } catch (KeyNotFoundException) { Error(CompilerMessages.FunctionNotFound, node.Identifier); } catch (AmbiguousMatchException) { Error(CompilerMessages.FunctionInvocationAmbiguous, node.Identifier); } }
protected bool Equals(GetIdentifierNode other) { return base.Equals(other) && RefArgumentRequired.Equals(other.RefArgumentRequired) && PointerRequired.Equals(other.PointerRequired); }