public virtual void Visit(TraitsArgument arg)
 {
     if (arg.Type != null)
     {
         arg.Type.Accept(this);
     }
     if (arg.AssignExpression != null)
     {
         arg.AssignExpression.Accept(this);
     }
 }
 public static AbstractType ResolveTraitArgument(ResolutionContext ctxt, TraitsArgument arg)
 {
     if (arg.Type != null)
     {
         return(TypeDeclarationResolver.ResolveSingle(arg.Type, ctxt));
     }
     else if (arg.AssignExpression != null)
     {
         return(EvaluateType(arg.AssignExpression, ctxt));
     }
     else
     {
         return(null);
     }
 }
Beispiel #3
0
 AbstractType E(TraitsArgument arg, TraitsExpression te)
 {
     if (arg.Type != null)
     {
         return(TypeDeclarationResolver.ResolveSingle(arg.Type, ctxt));
     }
     else if (arg.AssignExpression != null)
     {
         return(DResolver.StripAliasSymbol(EvaluateType(arg.AssignExpression, ctxt)));
     }
     else
     {
         EvalError(te, "Argument must be a type or an expression!");
         return(null);
     }
 }
		public virtual void Visit(TraitsArgument arg)
		{
			if (arg.Type != null)
				arg.Type.Accept(this);
			if (arg.AssignExpression != null)
				arg.AssignExpression.Accept(this);
		}
		AbstractType E(TraitsArgument arg, TraitsExpression te)
		{
			if(arg.Type != null)
			{
				return TypeDeclarationResolver.ResolveSingle(arg.Type, ctxt);
			}
			else if(arg.AssignExpression != null)
			{
				return DResolver.StripAliasSymbol(EvaluateType(arg.AssignExpression, ctxt));
			}
			else
			{
				EvalError(te, "Argument must be a type or an expression!");
				return null;
			}
		}