• N
    Overhaul `Const`. · a95fb8b1
    Nicholas Nethercote 提交于
    Specifically, rename the `Const` struct as `ConstS` and re-introduce `Const` as
    this:
    ```
    pub struct Const<'tcx>(&'tcx Interned<ConstS>);
    ```
    This now matches `Ty` and `Predicate` more closely, including using
    pointer-based `eq` and `hash`.
    
    Notable changes:
    - `mk_const` now takes a `ConstS`.
    - `Const` was copy, despite being 48 bytes. Now `ConstS` is not, so need a
      we need separate arena for it, because we can't use the `Dropless` one any
      more.
    - Many `&'tcx Const<'tcx>`/`&Const<'tcx>` to `Const<'tcx>` changes
    - Many `ct.ty` to `ct.ty()` and `ct.val` to `ct.val()` changes.
    - Lots of tedious sigil fiddling.
    a95fb8b1
visit.rs 8.5 KB