// visit delegate types by pushing the type onto the declaration stack
        // as the current scope for parameter handling etc... The typedef for
        // a function pointer has the name (FunctionType has no name )
        public override bool VisitTypedefDecl(TypedefDecl typedef)
        {
            if (typedef.IsDelegateTypeDef( ))
            {
                DeclarationStack.Push(typedef);
                try
                {
                    return(base.VisitTypedefDecl(typedef));
                }
                finally
                {
                    DeclarationStack.Pop( );
                }
            }

            return(true);
        }