Skip to content

Commit

Permalink
Made impl full paths be used in paths. (#7172)
Browse files Browse the repository at this point in the history
  • Loading branch information
orizi authored Jan 28, 2025
1 parent 7489706 commit 40bb1bd
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 8 deletions.
9 changes: 4 additions & 5 deletions crates/cairo-lang-semantic/src/items/imp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ impl DebugWithDb<dyn SemanticGroup> for ImplLongId {
) -> std::fmt::Result {
match self {
ImplLongId::Concrete(concrete_impl_id) => write!(f, "{:?}", concrete_impl_id.debug(db)),
ImplLongId::GenericParameter(param) => write!(f, "{:?}", param.debug(db)),
ImplLongId::GenericParameter(param) => write!(f, "{}", param.debug_name(db.upcast())),
ImplLongId::ImplVar(var) => write!(f, "?{}", var.lookup_intern(db).id.0),
ImplLongId::ImplImpl(impl_impl) => write!(f, "{:?}", impl_impl.debug(db)),
ImplLongId::SelfImpl(trait_impl) => write!(f, "{:?}", trait_impl.debug(db)),
Expand Down Expand Up @@ -410,9 +410,8 @@ impl ImplImplId {
Ok(ConcreteTraitImplId::new(db, self.impl_id.concrete_trait(db)?, self.trait_impl_id))
}

pub fn format(&self, db: &dyn SemanticGroup) -> SmolStr {
format!("{}::{}", self.impl_id.name(db.upcast()), self.trait_impl_id.name(db.upcast()),)
.into()
pub fn full_path(&self, db: &dyn SemanticGroup) -> String {
format!("{:?}", self.debug(db.elongate()))
}
}
impl DebugWithDb<dyn SemanticGroup> for ImplImplId {
Expand All @@ -421,7 +420,7 @@ impl DebugWithDb<dyn SemanticGroup> for ImplImplId {
f: &mut std::fmt::Formatter<'_>,
db: &(dyn SemanticGroup + 'static),
) -> std::fmt::Result {
write!(f, "{}", self.format(db))
write!(f, "{:?}::{}", self.impl_id.debug(db), self.trait_impl_id.name(db.upcast()))
}
}

Expand Down
4 changes: 2 additions & 2 deletions crates/cairo-lang-semantic/src/items/tests/trait_impl
Original file line number Diff line number Diff line change
Expand Up @@ -1363,7 +1363,7 @@ error: Trait has no implementation in context: test::Inner::<core::integer::u32>
| }
|_^

error: Trait has no implementation in context: core::metaprogramming::TypeEqual::<core::integer::u32, OuterU32::test::Inner::<core::integer::u32>::Item>.
error: Trait has no implementation in context: core::metaprogramming::TypeEqual::<core::integer::u32, test::OuterU32::InnerImpl::Item>.
--> lib.cairo:31:11
1_u64.foo(1_u32);
^^^
Expand Down Expand Up @@ -1424,7 +1424,7 @@ impl InnerImpl of Inner<u64> {
}

//! > expected_diagnostics
error: Impl mismatch: `Outer::Impl` and `test::InnerImpl`.
error: Impl mismatch: `test::Outer::<core::integer::u64>::Impl` and `test::InnerImpl`.
--> lib.cairo:40:5
mix(1_u64.into_inner(), 1_u32.into_inner());
^^^
2 changes: 1 addition & 1 deletion crates/cairo-lang-semantic/src/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ impl DebugWithDb<dyn SemanticGroup> for TypeLongId {
write!(f, "{}", generic_param.name(def_db).unwrap_or_else(|| "_".into()))
}
TypeLongId::ImplType(impl_type_id) => {
write!(f, "{}::{}", impl_type_id.impl_id.name(db), impl_type_id.ty.name(def_db))
write!(f, "{:?}::{}", impl_type_id.impl_id.debug(db), impl_type_id.ty.name(def_db))
}
TypeLongId::Var(var) => write!(f, "?{}", var.id.0),
TypeLongId::Coupon(function_id) => write!(f, "{}::Coupon", function_id.full_path(db)),
Expand Down

0 comments on commit 40bb1bd

Please sign in to comment.