private ProcedureNode(ParserRuleContext context, string scope, string localScope, VBProcedureKind kind, VBAParser.VisibilityContext visibility, VBAParser.AmbiguousIdentifierContext name, Func<VBAParser.AsTypeClauseContext> asType) : base(context, scope, localScope) { _kind = kind; _name = name.GetText(); _accessibility = visibility.GetAccessibility(); _visibilityContext = visibility; if (asType != null) { var returnTypeClause = asType(); _isImplicitReturnType = returnTypeClause == null; _returnType = returnTypeClause == null ? Tokens.Variant : returnTypeClause.type().GetText(); } }