Ejemplo n.º 1
0
        public TypeExpression ResolveAsBaseTerminal(ParseContext ec, bool silent)
        {
            var errorCount = ec.CompilerErrorCount;
            var fne        = ResolveAsTypeStep(ec, silent);

            if (fne == null)
            {
                return(null);
            }

            var typeExpression = fne as TypeExpression;

            if (typeExpression == null)
            {
                if (!silent && (errorCount == ec.CompilerErrorCount))
                {
                    ec.ReportError(
                        CompilerErrors.UnexpectedExpressionType,
                        Span,
                        GetSignatureForError(),
                        "type");
                }

                return(null);
            }

            if (!TypeManager.CheckAccessLevel(ec, typeExpression.Type))
            {
                ec.ReportError(
                    CompilerErrors.MemberIsInaccessible,
                    Span,
                    TypeManager.GetCSharpName(typeExpression.Type));

                return(null);
            }

            typeExpression.Span = Span;

            return(typeExpression);
        }
Ejemplo n.º 2
0
 public virtual bool CheckAccessLevel(ParseContext parseContext)
 {
     return(TypeManager.CheckAccessLevel(parseContext, Type));
 }
Ejemplo n.º 3
0
 public override bool CheckAccessLevel(ParseContext parseContext)
 {
     return(TypeManager.CheckAccessLevel(parseContext, _openType));
 }