is_syntactic_subtype(): remove option in Err variant
This commit is contained in:
parent
29d1acd681
commit
45f49378fa
2 changed files with 6 additions and 6 deletions
|
@ -19,20 +19,20 @@ impl TypeTerm {
|
||||||
None
|
None
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_syntactic_subtype_of(&self, expected_type: &TypeTerm) -> Result<usize, Option<(usize, usize)>> {
|
pub fn is_syntactic_subtype_of(&self, expected_type: &TypeTerm) -> Result<usize, (usize, usize)> {
|
||||||
if let Some((first_match, provided_type)) = self.is_semantic_subtype_of( expected_type ) {
|
if let Some((first_match, provided_type)) = self.is_semantic_subtype_of( expected_type ) {
|
||||||
let provided_lnf = provided_type.get_lnf_vec();
|
let provided_lnf = provided_type.get_lnf_vec();
|
||||||
let expected_lnf = expected_type.clone().get_lnf_vec();
|
let expected_lnf = expected_type.clone().get_lnf_vec();
|
||||||
|
|
||||||
for i in 0 .. usize::min( provided_lnf.len(), expected_lnf.len() ) {
|
for i in 0 .. usize::min( provided_lnf.len(), expected_lnf.len() ) {
|
||||||
if provided_lnf[i] != expected_lnf[i] {
|
if provided_lnf[i] != expected_lnf[i] {
|
||||||
return Err(Some((first_match, first_match+i)))
|
return Err((first_match, first_match+i))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(first_match)
|
Ok(first_match)
|
||||||
} else {
|
} else {
|
||||||
Err(None)
|
Err((0,0))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ impl TypeTerm {
|
||||||
t.is_semantic_subtype_of(self)
|
t.is_semantic_subtype_of(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn is_syntactic_supertype_of(&self, t: &TypeTerm) -> Result<usize, Option<(usize, usize)>> {
|
pub fn is_syntactic_supertype_of(&self, t: &TypeTerm) -> Result<usize, (usize, usize)> {
|
||||||
t.is_syntactic_subtype_of(self)
|
t.is_syntactic_subtype_of(self)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ fn test_syntactic_subtype() {
|
||||||
.is_syntactic_subtype_of(
|
.is_syntactic_subtype_of(
|
||||||
&dict.parse("C~G").expect("parse errror")
|
&dict.parse("C~G").expect("parse errror")
|
||||||
),
|
),
|
||||||
Err(Some((2,3)))
|
Err((2,3))
|
||||||
);
|
);
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
@ -70,7 +70,7 @@ fn test_syntactic_subtype() {
|
||||||
.is_syntactic_subtype_of(
|
.is_syntactic_subtype_of(
|
||||||
&dict.parse("G~F~K").expect("parse errror")
|
&dict.parse("G~F~K").expect("parse errror")
|
||||||
),
|
),
|
||||||
Err(None)
|
Err((0,0))
|
||||||
);
|
);
|
||||||
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
|
|
Loading…
Reference in a new issue