@@ -635,7 +635,7 @@ pub enum Error {
635635 world : String ,
636636 /// The span where the error occurred.
637637 #[ label( primary, "mismatched type for {kind} `{name}`" ) ]
638- span : SourceSpan ,
638+ span : Option < SourceSpan > ,
639639 /// The source of the error.
640640 #[ source]
641641 source : anyhow:: Error ,
@@ -2717,28 +2717,28 @@ impl<'a> AstResolver<'a> {
27172717
27182718 // The output is allowed to import a subset of the world's imports
27192719 checker. invert ( ) ;
2720- for ( name, import ) in state. graph . imports ( ) {
2720+ for ( name, item_kind , import_node ) in state. graph . imports ( ) {
27212721 let expected = world
27222722 . imports
27232723 . get ( name)
27242724 . ok_or_else ( || Error :: ImportNotInTarget {
27252725 name : name. to_owned ( ) ,
27262726 world : path. string . to_owned ( ) ,
2727- span : state. import_spans . get ( & import ) . copied ( ) ,
2727+ span : import_node . map ( |n| state. import_spans [ & n ] ) ,
27282728 } ) ?;
27292729
27302730 checker
27312731 . is_subtype (
27322732 expected. promote ( ) ,
27332733 state. graph . types ( ) ,
2734- state . graph [ import ] . item_kind ( ) ,
2734+ item_kind,
27352735 state. graph . types ( ) ,
27362736 )
27372737 . map_err ( |e| Error :: TargetMismatch {
27382738 kind : ExternKind :: Import ,
27392739 name : name. to_owned ( ) ,
27402740 world : path. string . to_owned ( ) ,
2741- span : state. import_spans [ & import ] ,
2741+ span : import_node . map ( |n| state. import_spans [ & n ] ) ,
27422742 source : e,
27432743 } ) ?;
27442744 }
@@ -2769,7 +2769,7 @@ impl<'a> AstResolver<'a> {
27692769 kind : ExternKind :: Export ,
27702770 name : name. clone ( ) ,
27712771 world : path. string . to_owned ( ) ,
2772- span : state. export_spans [ & export] ,
2772+ span : state. export_spans . get ( & export) . copied ( ) ,
27732773 source : e,
27742774 } ) ?;
27752775 }
0 commit comments