summaryrefslogtreecommitdiff
path: root/dhall/src/error/mod.rs
diff options
context:
space:
mode:
authorNadrieril2020-02-04 18:18:27 +0000
committerNadrieril2020-02-04 18:18:27 +0000
commitbde4104d061ab87d4af85a083c549ae174797710 (patch)
treed6d2d445a683c71021a24d7e691b02c24294ae76 /dhall/src/error/mod.rs
parent488bce275f104384282a0867aeaad011ae8cf48c (diff)
Add basic pretty type errors to all errors
Diffstat (limited to 'dhall/src/error/mod.rs')
-rw-r--r--dhall/src/error/mod.rs55
1 files changed, 2 insertions, 53 deletions
diff --git a/dhall/src/error/mod.rs b/dhall/src/error/mod.rs
index 6ea7d0c..13b61fa 100644
--- a/dhall/src/error/mod.rs
+++ b/dhall/src/error/mod.rs
@@ -47,42 +47,7 @@ pub struct TypeError {
/// The specific type error
#[derive(Debug)]
pub(crate) enum TypeMessage {
- // UnboundVariable(Span),
- // NotAFunction(Value),
- // TypeMismatch(Value, Value, Value),
- // AnnotMismatch(Value, Value),
- // InvalidListElement(usize, Value, Value),
- // InvalidListType(Value),
- // InvalidOptionalType(Value),
- // InvalidPredicate(Value),
- // IfBranchMismatch(Value, Value),
- // IfBranchMustBeTerm(bool, Value),
- // InvalidFieldType(Label, Value),
- // NotARecord(Label, Value),
- // MustCombineRecord(Value),
- // MissingRecordField(Label, Value),
- // MissingUnionField(Label, Value),
- // BinOpTypeMismatch(BinOp, Value),
- // InvalidTextInterpolation(Value),
- // Merge1ArgMustBeRecord(Value),
- // Merge2ArgMustBeUnionOrOptional(Value),
- // MergeEmptyNeedsAnnotation,
- // MergeHandlerMissingVariant(Label),
- // MergeVariantMissingHandler(Label),
- // MergeAnnotMismatch,
- // MergeHandlerTypeMismatch,
- // MergeHandlerReturnTypeMustNotBeDependent,
- // ProjectionMustBeRecord,
- // ProjectionMissingEntry,
- // ProjectionDuplicateField,
Sort,
- // RecordTypeDuplicateField,
- // RecordTypeMergeRequiresRecordType(Value),
- // UnionTypeDuplicateField,
- // EquivalenceArgumentMustBeTerm(bool, Value),
- // EquivalenceTypeMismatch(Value, Value),
- // AssertMismatch(Value, Value),
- // AssertMustTakeEquivalence,
Custom(String),
}
@@ -96,24 +61,8 @@ impl std::fmt::Display for TypeError {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
use TypeMessage::*;
let msg = match &self.message {
- // UnboundVariable(var) => var.error("Type error: Unbound variable"),
- // NotAFunction(v) => v.span().error("Type error: Not a function"),
- // TypeMismatch(x, y, z) => {
- // x.span()
- // .error("Type error: Wrong type of function argument")
- // + "\n"
- // + &z.span().error(format!(
- // "This argument has type {:?}",
- // z.get_type().unwrap()
- // ))
- // + "\n"
- // + &y.span().error(format!(
- // "But the function expected an argument of type {:?}",
- // y
- // ))
- // }
- Custom(s) => format!("Type error: Unhandled error: {}", s),
- _ => format!("Type error: Unhandled error: {:?}", self.message),
+ Sort => format!("Type error: Unhandled error: {:?}", self.message),
+ Custom(s) => format!("Type error: {}", s),
};
write!(f, "{}", msg)
}