public CircularTypeReferencesError(IEnumerable<TypeDeclarationNode> types, SourceLocation location)
            : base(location)
        {
            _types = types;

            OrderedTypes = CheckForCircularTypeReferences(_types).ToList();
        }
 public MethodNotFoundError(Type targetType, string methodName, Type[] argTypes, SourceLocation location)
     : base(location)
 {
     _targetType = targetType;
     _methodName = methodName;
     _argTypes = argTypes;
 }
 public OperatorNotDefinedError(Type left, Type right, TigerOperator @operator, SourceLocation location)
     : base(location)
 {
     Left = left;
     Right = right;
     Operator = @operator;
 }
 public FunctionNotDefinedError(string functionName, IEnumerable<Type> argTypes, FunctionScope scope,
                                SourceLocation location)
     : base(location)
 {
     _functionName = functionName;
     _argTypes = argTypes;
     _scope = scope;
 }
        public NotEnumerableError(Type targetType, SourceLocation location)
            : base(location)
        {
            TargetType = targetType;

            try
            {
                CollectionType = TypeUtils.GetCollectionType(targetType);
            }
            catch (ArgumentException e)
            {
                _isActive = true;
            }
        }
 public FieldNotFoundError(Type targetType, string fieldName, SourceLocation location)
     : base(targetType, fieldName, location)
 {
     FieldInfo fieldInfo = targetType.GetField(fieldName);
     if (fieldInfo != null)
     {
         PropertyType = fieldInfo.FieldType;
         _isActive = false;
     }
     else
     {
         PropertyInfo propertyInfo = targetType.GetProperty(fieldName);
         if (propertyInfo != null)
         {
             PropertyType = propertyInfo.PropertyType;
             _isActive = false;
         }
         else
         {
             _isActive = true;
         }
     }
 }
 public CanNotInferArrayTypeError(IEnumerable<Type> itemTypes, SourceLocation location)
     : base(location)
 {
     ItemTypes = itemTypes;
 }
 public MemberWithSameSignatureAlreadyDefinedError(string memberName, IEnumerable<Type> argTypes,
                                                   AstHelper helper, SourceLocation location)
     : base(memberName, helper, location)
 {
     ArgTypes = argTypes;
 }
 public TypeWithSameNameAlreadyDefinedError(string typeName, TypeScope scope, SourceLocation location)
     : base(location)
 {
     _typeName = typeName;
     _scope = scope;
 }
 public ExpectingTypeError(SourceLocation location, Expecting expecting)
     : base(location)
 {
     _expecting = expecting;
 }
 public SomeParametersWithTheSameNameError(IEnumerable<FunctionParameterExpression> parameters,
                                           SourceLocation location)
     : base(location)
 {
     Parameters = parameters;
 }
 public CanNotInferTypeError(Type left, Type right, SourceLocation location)
     : base(location)
 {
     _left = left;
     _right = right;
 }
 public NotAssignableError(Type variableType, Type valueType, SourceLocation location)
     : base(location)
 {
     _variableType = variableType;
     _valueType = valueType;
 }
 protected MemberNotFoundError(Type targetType, string memberName, SourceLocation location)
     : base(location)
 {
     TargetType = targetType;
     MemberName = memberName;
 }
 public BreakOutOfLoopScopeError(SourceLocation location, LoopScope scope)
     : base(location)
 {
     _scope = scope;
 }
 public MissingTypeError(string typeName, TypeScope scope, SourceLocation location)
     : base(location)
 {
     _typeName = typeName;
     _scope = scope;
 }
 public VariableAlreadyDefinedError(string variableName, AstHelper helper, SourceLocation location)
     : base(variableName, helper, location)
 {
 }
 public NotAnArrayTypeError(Type type, SourceLocation location)
     : base(location)
 {
     _type = type;
 }
 public TypeMismatchedError(Type expectedType, Type actualType, SourceLocation location)
     : base(location)
 {
     _expectedType = expectedType;
     _actualType = actualType;
 }
 public NotBoolConvertibleError(Type type, SourceLocation location)
     : base(type, typeof (void), location)
 {
 }
 public ContinueOutOfLoopScopeError(SourceLocation location, LoopScope scope)
     : base(location)
 {
     _scope = scope;
 }
 public TypeMatchedError(Type type, Type expected, SourceLocation location)
     : base(location)
 {
     _type = type;
     _expected = expected;
 }
 public IdentifierNotDefinedError(string variableName, VariableScope scope, SourceLocation location)
     : base(location)
 {
     _variableName = variableName;
     _scope = scope;
 }
 protected ErrorBase(SourceLocation location)
 {
     Location = location;
 }
 public IdentifierExpectedError(string identifier, SourceLocation location)
     : base(location)
 {
     Identifier = identifier;
 }
 public IfThenBodyReturnsValueError(Type returnedType, SourceLocation location)
     : base(typeof (void), returnedType, location)
 {
 }
 public MemberWithSameNameAlreadyDefinedError(string memberName, AstHelper helper, SourceLocation location)
     : base(location)
 {
     MemberName = memberName;
     Helper = helper;
 }
 public ConditionalNotEquivalentTypes(Type thenType, Type elseType, SourceLocation location)
     : base(thenType, elseType, location)
 {
 }