fn decl_class_class(&self, class_id: &Positioned<TypeName, R::Pos>) -> ClassConst<R> {
        // note(sf, 2022-02-08): c.f. Decl_folded_class.class_class_decl
        let pos = class_id.pos();
        let name = class_id.id();
        let reason = R::mk(|| ReasonImpl::RclassClass(pos.clone(), name));
        let classname_ty = self.alloc.decl_ty(
            reason.clone(),
            DeclTy_::DTapply(
                Positioned::new(pos.clone(), self.special_names.classes.cClassname),
                vec![self.alloc.decl_ty(reason, DeclTy_::DTthis)],
            ),
        );
        ClassConst {
            is_synthesized: true,
            kind: ClassConstKind::CCConcrete,
            pos: pos.clone(),
            ty: classname_ty,
            origin: name.clone(),
            refs: Vec::new(),
        }
    }
/// Every class, interface, and trait implicitly defines a `::class` to allow
/// accessing its fully qualified name as a string.
Every class, interface, and trait implicitly defines a `::class` to allow
accessing its fully qualified name as a string.
Every class interface and trait implicitly defines a ` :: class ` to allow accessing its fully qualified name as a string .
fn decl_class_class(&self, class_id: &Positioned<TypeName, R::Pos>) -> ClassConst<R> {
        // note(sf, 2022-02-08): c.f. Decl_folded_class.class_class_decl
        let pos = class_id.pos();
        let name = class_id.id();
        let reason = R::mk(|| ReasonImpl::RclassClass(pos.clone(), name));
        let classname_ty = self.alloc.decl_ty(
            reason.clone(),
            DeclTy_::DTapply(
                Positioned::new(pos.clone(), self.special_names.classes.cClassname),
                vec![self.alloc.decl_ty(reason, DeclTy_::DTthis)],
            ),
        );
        ClassConst {
            is_synthesized: true,
            kind: ClassConstKind::CCConcrete,
            pos: pos.clone(),
            ty: classname_ty,
            origin: name.clone(),
            refs: Vec::new(),
        }
    }
fn decl_class_class ( & self , class_id : & Positioned < TypeName , R :: Pos > ) -> ClassConst < R > { // note(sf, 2022-02-08): c.f. Decl_folded_class.class_class_decl let pos = class_id . pos ( ) ; let name = class_id . id ( ) ; let reason = R :: mk ( | | ReasonImpl :: RclassClass ( pos . clone ( ) , name ) ) ; let classname_ty = self . alloc . decl_ty ( reason . clone ( ) , DeclTy_ :: DTapply ( Positioned :: new ( pos . clone ( ) , self . special_names . classes . cClassname ) , vec ! [ self alloc decl_ty ( reason DeclTy_ DTthis ) ] , ) , ) ; ClassConst { is_synthesized : true , kind : ClassConstKind :: CCConcrete , pos : pos . clone ( ) , ty : classname_ty , origin : name . clone ( ) , refs : Vec :: new ( ) , } }
Every class, interface, and trait implicitly defines a `::class` to allow
accessing its fully qualified name as a string.
Every class interface and trait implicitly defines a ` :: class ` to allow accessing its fully qualified name as a string .
&self
class_id
&Positioned<TypeName, R::Pos>