Compiling fayalite-proc-macros v0.3.0 (/home/alex/Hacking/FPGA/libre-chip/fayalite/crates/fayalite-proc-macros)
   Compiling fayalite v0.3.0 (/home/alex/Hacking/FPGA/libre-chip/fayalite/crates/fayalite)
warning: unused import: `make_impls`
   --> crates/fayalite/src/expr/ops.rs:582:16
    |
582 | pub(crate) use make_impls;
    |                ^^^^^^^^^^
    |
    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `annotations::make_annotation_enum` and `intern::Interned`
 --> crates/fayalite/src/vendor/lattice.rs:5:5
  |
5 |     annotations::make_annotation_enum,
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
6 |     build::{GlobalParams, ToArgs, WriteArgs},
7 |     intern::Interned,
  |     ^^^^^^^^^^^^^^^^

warning: unused import: `ordered_float::NotNan`
  --> crates/fayalite/src/vendor/lattice.rs:11:5
   |
11 | use ordered_float::NotNan;
   |     ^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `primitives`
  --> crates/fayalite/src/vendor/lattice/orangecrab.rs:15:9
   |
15 |         primitives,
   |         ^^^^^^^^^^

warning: unused import: `ordered_float::NotNan`
  --> crates/fayalite/src/vendor/lattice/orangecrab.rs:18:5
   |
18 | use ordered_float::NotNan;
   |     ^^^^^^^^^^^^^^^^^^^^^

warning: variant `OrangeCrab_25k` should have an upper camel case name
  --> crates/fayalite/src/vendor/lattice/orangecrab.rs:63:9
   |
63 |         OrangeCrab_25k,
   |         ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OrangeCrab25k`
   |
   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default

warning: variant `OrangeCrab_85k` should have an upper camel case name
  --> crates/fayalite/src/vendor/lattice/orangecrab.rs:65:9
   |
65 |         OrangeCrab_85k,
   |         ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `OrangeCrab85k`

warning: unused imports: `Annotation`, `ScopedNameId`, `TargetBase`, and `TargetName`
  --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:5:19
   |
 5 |     annotations::{Annotation, TargetedAnnotation},
   |                   ^^^^^^^^^^
...
16 |     expr::target::{Target, TargetBase},
   |                            ^^^^^^^^^^
...
20 |         NameId, ScopedNameId, TargetName,
   |                 ^^^^^^^^^^^^  ^^^^^^^^^^

warning: unused import: `convert::Infallible`
  --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:34:5
   |
34 |     convert::Infallible,
   |     ^^^^^^^^^^^^^^^^^^^

warning: unused variable: `lhs_ty`
    --> crates/fayalite/src/sim/compiler.rs:3809:37
     |
3809 |                 CanonicalType::Enum(lhs_ty) => {
     |                                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_lhs_ty`
     |
     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `rhs_ty`
    --> crates/fayalite/src/sim/compiler.rs:3810:45
     |
3810 |                     let CanonicalType::Enum(rhs_ty) = rhs.ty() else {
     |                                             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rhs_ty`

warning: unused variable: `part_name`
    --> crates/fayalite/src/sim/compiler.rs:3898:37
     |
3898 |         let mut alloc_small_slot = |part_name: &str| {
     |                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_part_name`

warning: unused variable: `annotations`
    --> crates/fayalite/src/sim/compiler.rs:4080:23
     |
4080 |         let StmtReg { annotations, reg } = stmt_reg;
     |                       ^^^^^^^^^^^ help: try ignoring the field: `annotations: _`

warning: unused variable: `annotations`
    --> crates/fayalite/src/sim/compiler.rs:4118:46
     |
4118 |             StmtDeclaration::Wire(StmtWire { annotations, wire }) => {}
     |                                              ^^^^^^^^^^^ help: try ignoring the field: `annotations: _`

warning: unused variable: `wire`
    --> crates/fayalite/src/sim/compiler.rs:4118:59
     |
4118 |             StmtDeclaration::Wire(StmtWire { annotations, wire }) => {}
     |                                                           ^^^^ help: try ignoring the field: `wire: _`

warning: unused variable: `annotations`
    --> crates/fayalite/src/sim/compiler.rs:4129:17
     |
4129 |                 annotations,
     |                 ^^^^^^^^^^^ help: try ignoring the field: `annotations: _`

warning: unused variable: `location`
   --> crates/fayalite/src/vendor/lattice/orangecrab.rs:233:49
    |
233 |         let make_buffered_output = |name: &str, location: &str, io_standard: &str| {
    |                                                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location`

warning: unused variable: `io_standard`
   --> crates/fayalite/src/vendor/lattice/orangecrab.rs:233:65
    |
233 |         let make_buffered_output = |name: &str, location: &str, io_standard: &str| {
    |                                                                 ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_io_standard`

warning: unused variable: `location`
   --> crates/fayalite/src/vendor/lattice/orangecrab.rs:210:48
    |
210 |         let make_buffered_input = |name: &str, location: &str, io_standard: &str, invert: bool| {
    |                                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_location`

warning: unused variable: `io_standard`
   --> crates/fayalite/src/vendor/lattice/orangecrab.rs:210:64
    |
210 |         let make_buffered_input = |name: &str, location: &str, io_standard: &str, invert: bool| {
    |                                                                ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_io_standard`

warning: variable `frequency` is assigned to, but never used
   --> crates/fayalite/src/vendor/lattice/orangecrab.rs:257:13
    |
257 |         let mut frequency = clk100_div_pow2[0].ty().frequency();
    |             ^^^^^^^^^^^^^
    |
    = note: consider using `_frequency` instead

warning: value assigned to `frequency` is never read
   --> crates/fayalite/src/vendor/lattice/orangecrab.rs:268:13
    |
268 |             frequency = p.ty().frequency();
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: maybe it is overwritten before being read?
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: unused variable: `output`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:496:9
    |
496 |         output: &mut impl fmt::Write,
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`

warning: unused variable: `port`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:497:9
    |
497 |         port: &ScalarizedModuleABIPort,
    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_port`

warning: unused variable: `annotations`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:498:9
    |
498 |         annotations: ScalarizedModuleABIAnnotations<'_>,
    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_annotations`

warning: unused variable: `job_data`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:707:13
    |
707 |         let job_data @ YosysNextpnrRunNextpnr {
    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_job_data`

warning: unused variable: `nextpnr_lattice_seed`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:708:13
    |
708 |             nextpnr_lattice_seed,
    |             ^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `nextpnr_lattice_seed: _`

warning: unused variable: `routed_json_file_name`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:710:13
    |
710 |             routed_json_file_name,
    |             ^^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `routed_json_file_name: _`

warning: unused variable: `job_data`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:861:13
    |
861 |         let job_data @ YosysNextpnrRunEcpPack {
    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_job_data`

warning: unused variable: `placeholder_dir`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:862:4
    |
862 |             placeholder_dir,
    |             ^^^^^^^^^^^^^^^ help: try ignoring the field: `placeholder_dir: _`

warning: unused variable: `device`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:863:13
    |
863 |             device,
    |             ^^^^^^ help: try ignoring the field: `device: _`

warning: unused variable: `routed_json_file_name`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:864:13
    |
864 |             routed_json_file_name,
    |             ^^^^^^^^^^^^^^^^^^^^^ help: try ignoring the field: `routed_json_file_name: _`

warning: unused variable: `frames_file_name`
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:866:13
    |
866 |             frames_file_name,
    |             ^^^^^^^^^^^^^^^^ help: try ignoring the field: `frames_file_name: _`

warning: struct `SliceAsMapDebug` is never constructed
    --> crates/fayalite/src/sim.rs:3231:8
     |
3231 | struct SliceAsMapDebug<'a, T>(&'a [Option<T>]);
     |        ^^^^^^^^^^^^^^^
     |
     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: method `element_dyn` is never used
   --> crates/fayalite/src/sim/compiler.rs:397:8
    |
385 | impl CompiledValue<Array> {
    | ------------------------- method in this implementation
...
397 |     fn element_dyn(
    |        ^^^^^^^^^^^

warning: methods `len`, `index`, `is_empty`, and `stride` are never used
   --> crates/fayalite/src/sim/compiler.rs:444:27
    |
434 |           impl TypeArrayIndex {
    |           ------------------- methods in this implementation
...
444 |               pub(crate) fn len(self) -> usize {
    |                             ^^^
...
449 |               pub(crate) fn index(self) -> StatePartIndex<StatePartKindSmallSlots> {
    |                             ^^^^^
...
454 |               pub(crate) fn is_empty(self) -> bool {
    |                             ^^^^^^^^
...
457 |               pub(crate) fn stride(self) -> TypeLen {
    |                             ^^^^^^
...
569 | / get_state_part_kinds! {
570 | |     make_type_array_indexes! {
571 | |         type_plural_fields;
572 | |         type_kinds;
573 | |     }
574 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_type_array_indexes` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: methods `iter`, `for_each_offset`, `split_first`, and `for_each_offset2` are never used
   --> crates/fayalite/src/sim/compiler.rs:478:27
    |
469 |           impl<'a> TypeArrayIndexesRef<'a> {
    |           -------------------------------- methods in this implementation
...
478 |               pub(crate) fn iter(self) -> impl Iterator<Item = TypeArrayIndex> + 'a {
    |                             ^^^^
...
483 |               pub(crate) fn for_each_offset(
    |                             ^^^^^^^^^^^^^^^
...
491 |               pub(crate) fn split_first(self) -> Option<(TypeArrayIndex, Self)> {
    |                             ^^^^^^^^^^^
...
501 |               pub(crate) fn for_each_offset2(
    |                             ^^^^^^^^^^^^^^^^
...
569 | / get_state_part_kinds! {
570 | |     make_type_array_indexes! {
571 | |         type_plural_fields;
572 | |         type_kinds;
573 | |     }
574 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_type_array_indexes` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: struct `TypeArrayIndexed` is never constructed
   --> crates/fayalite/src/sim/compiler.rs:534:27
    |
534 |           pub(crate) struct TypeArrayIndexed {
    |                             ^^^^^^^^^^^^^^^^
...
569 | / get_state_part_kinds! {
570 | |     make_type_array_indexes! {
571 | |         type_plural_fields;
572 | |         type_kinds;
573 | |     }
574 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_type_array_indexes` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: associated items `from_parts`, `base`, and `indexes` are never used
   --> crates/fayalite/src/sim/compiler.rs:539:27
    |
538 |           impl TypeArrayIndexed {
    |           --------------------- associated items in this implementation
539 |               pub(crate) fn from_parts(base: TypeIndex, indexes: TypeArrayIndexes) -> Self {
    |                             ^^^^^^^^^^
...
547 |               pub(crate) fn base(self) -> TypeIndex {
    |                             ^^^^
...
552 |               pub(crate) fn indexes(self) -> TypeArrayIndexes {
    |                             ^^^^^^^
...
569 | / get_state_part_kinds! {
570 | |     make_type_array_indexes! {
571 | |         type_plural_fields;
572 | |         type_kinds;
573 | |     }
574 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_type_array_indexes` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: methods `add_target_without_indexes_to_set` and `add_target_and_indexes_to_set` are never used
   --> crates/fayalite/src/sim/compiler.rs:602:8
    |
591 | impl<T: Type> CompiledExpr<T> {
    | ----------------------------- methods in this implementation
...
602 |     fn add_target_without_indexes_to_set(self, inputs: &mut SlotSet) {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
611 |     fn add_target_and_indexes_to_set(self, inputs: &mut SlotSet) {
    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: method `field_by_name` is never used
   --> crates/fayalite/src/sim/compiler.rs:628:8
    |
621 | impl CompiledExpr<Bundle> {
    | ------------------------- method in this implementation
...
628 |     fn field_by_name(self, name: Interned<str>) -> CompiledExpr<CanonicalType> {
    |        ^^^^^^^^^^^^^

warning: method `for_each` is never used
    --> crates/fayalite/src/sim/compiler.rs:1272:16
     |
1251 |           impl SlotToAssignmentIndexFullMap {
     |           --------------------------------- method in this implementation
...
1272 |               fn for_each(
     |                  ^^^^^^^^
...
1413 | / get_state_part_kinds! {
1414 | |     make_assignment_graph! {
1415 | |         type_plural_fields;
1416 | |         type_singular_variants;
...    |
1422 | | }
     | |_- in this macro invocation
     |
     = note: this warning originates in the macro `make_assignment_graph` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: struct `SlotVec` is never constructed
    --> crates/fayalite/src/sim/compiler.rs:1509:16
     |
1509 |           struct SlotVec {
     |                  ^^^^^^^
...
1521 | / get_state_part_kinds! {
1522 | |     make_slot_vec! {
1523 | |         type_plural_fields;
1524 | |         type_kinds;
1525 | |     }
1526 | | }
     | |_- in this macro invocation
     |
     = note: this warning originates in the macro `make_slot_vec` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: method `is_empty` is never used
    --> crates/fayalite/src/sim/compiler.rs:1514:16
     |
1513 |           impl SlotVec {
     |           ------------ method in this implementation
1514 |               fn is_empty(&self) -> bool {
     |                  ^^^^^^^^
...
1521 | / get_state_part_kinds! {
1522 | |     make_slot_vec! {
1523 | |         type_plural_fields;
1524 | |         type_kinds;
1525 | |     }
1526 | | }
     | |_- in this macro invocation
     |
     = note: this warning originates in the macro `make_slot_vec` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: methods `is_empty`, `for_each`, and `all` are never used
    --> crates/fayalite/src/sim/compiler.rs:1539:16
     |
1538 |           impl SlotSet {
     |           ------------ methods in this implementation
1539 |               fn is_empty(&self) -> bool {
     |                  ^^^^^^^^
...
1542 |               fn for_each(
     |                  ^^^^^^^^
...
1548 |               fn all(
     |                  ^^^
...
1619 | / get_state_part_kinds! {
1620 | |     make_slot_set! {
1621 | |         type_plural_fields;
1622 | |         type_kinds;
1623 | |     }
1624 | | }
     | |_- in this macro invocation
     |
     = note: this warning originates in the macro `make_slot_set` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: constant `MIN_BITS_FOR_NEEDING_BIG` is never used
  --> crates/fayalite/src/sim/interpreter.rs:33:18
   |
33 | pub(crate) const MIN_BITS_FOR_NEEDING_BIG: usize = SmallUInt::BITS as usize + 1;
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^

warning: struct `InsnFieldTypeTransformUnit` is never constructed
  --> crates/fayalite/src/sim/interpreter.rs:50:19
   |
50 | pub(crate) struct InsnFieldTypeTransformUnit;
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: struct `InsnFieldTypeTransformValue` is never constructed
  --> crates/fayalite/src/sim/interpreter.rs:80:19
   |
80 | pub(crate) struct InsnFieldTypeTransformValue;
   |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: associated constant `UNIT` is never used
  --> crates/fayalite/src/sim/interpreter.rs:90:11
   |
89 | pub trait InsnFieldTrait: Send + Sync + 'static + Copy + Eq + Hash + fmt::Debug {
   |           -------------- associated constant in this trait
90 |     const UNIT: InsnFieldType<InsnFieldTypeTransformUnit>;
   |           ^^^^

warning: field `orig_insns` is never read
    --> crates/fayalite/src/sim/interpreter.rs:1035:24
     |
1034 |           pub(crate) struct BorrowedState<'a> {
     |                             ------------- field in this struct
1035 |               pub(crate) orig_insns: Interned<Insns<InsnsBuildingDone>>,
     |                          ^^^^^^^^^^
...
1052 | / get_state_part_kinds! {
1053 | |     make_state! {
1054 | |         state_plural_fields;
1055 | |         state_kinds;
1056 | |     }
1057 | | }
     | |_- in this macro invocation
     |
     = note: `BorrowedState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
     = note: this warning originates in the macro `make_state` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: struct `StatePartIndexMap` is never constructed
    --> crates/fayalite/src/sim/interpreter.rs:1060:19
     |
1060 | pub(crate) struct StatePartIndexMap<K: StatePartKind, V> {
     |                   ^^^^^^^^^^^^^^^^^

warning: multiple associated items are never used
    --> crates/fayalite/src/sim/interpreter.rs:1079:19
     |
1078 | impl<K: StatePartKind, V> StatePartIndexMap<K, V> {
     | ------------------------------------------------- associated items in this implementation
1079 |     pub(crate) fn new() -> Self {
     |                   ^^^
...
1085 |     pub(crate) fn get(&self, key: StatePartIndex<K>) -> Option<&V> {
     |                   ^^^
...
1088 |     pub(crate) fn get_mut(&mut self, key: StatePartIndex<K>) -> Option<&mut V> {
     |                   ^^^^^^^
...
1091 |     pub(crate) fn keys(&self) -> impl Iterator<Item = StatePartIndex<K>> + '_ {
     |                   ^^^^
...
1094 |     pub(crate) fn values(&self) -> vec_map::Values<'_, V> {
     |                   ^^^^^^
...
1097 |     pub(crate) fn values_mut(&mut self) -> vec_map::ValuesMut<'_, V> {
     |                   ^^^^^^^^^^
...
1100 |     pub(crate) fn iter(&self) -> impl Iterator<Item = (StatePartIndex<K>, &V)> + '_ {
     |                   ^^^^
...
1105 |     pub(crate) fn iter_mut(&mut self) -> impl Iterator<Item = (StatePartIndex<K>, &mut V)> + '_ {
     |                   ^^^^^^^^
...
1110 |     pub(crate) fn len(&self) -> usize {
     |                   ^^^
...
1113 |     pub(crate) fn is_empty(&self) -> bool {
     |                   ^^^^^^^^
...
1116 |     pub(crate) fn insert(&mut self, key: StatePartIndex<K>, value: V) -> Option<V> {
     |                   ^^^^^^
...
1119 |     pub(crate) fn remove(&mut self, key: StatePartIndex<K>) -> Option<V> {
     |                   ^^^^^^
...
1122 |     pub(crate) fn entry(&mut self, key: StatePartIndex<K>) -> StatePartIndexMapEntry<'_, K, V> {
     |                   ^^^^^

warning: struct `StatePartIndexMapVacantEntry` is never constructed
    --> crates/fayalite/src/sim/interpreter.rs:1154:19
     |
1154 | pub(crate) struct StatePartIndexMapVacantEntry<'a, K: StatePartKind, V>(
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: struct `StatePartIndexMapOccupiedEntry` is never constructed
    --> crates/fayalite/src/sim/interpreter.rs:1159:19
     |
1159 | pub(crate) struct StatePartIndexMapOccupiedEntry<'a, K: StatePartKind, V>(
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: enum `StatePartIndexMapEntry` is never used
    --> crates/fayalite/src/sim/interpreter.rs:1164:17
     |
1164 | pub(crate) enum StatePartIndexMapEntry<'a, K: StatePartKind, V> {
     |                 ^^^^^^^^^^^^^^^^^^^^^^

warning: methods `or_insert` and `or_insert_with` are never used
    --> crates/fayalite/src/sim/interpreter.rs:1170:19
     |
1169 | impl<'a, K: StatePartKind, V> StatePartIndexMapEntry<'a, K, V> {
     | -------------------------------------------------------------- methods in this implementation
1170 |     pub(crate) fn or_insert(self, default: V) -> &'a mut V {
     |                   ^^^^^^^^^
...
1176 |     pub(crate) fn or_insert_with(self, f: impl FnOnce() -> V) -> &'a mut V {
     |                   ^^^^^^^^^^^^^^

warning: method `last_insn_pc` is never used
    --> crates/fayalite/src/sim/interpreter.rs:1193:19
     |
1184 | impl Insns<InsnsBuilding> {
     | ------------------------- method in this implementation
...
1193 |     pub(crate) fn last_insn_pc(&self) -> usize {
     |                   ^^^^^^^^^^^^

warning: function `bigint_pow2` is never used
    --> crates/fayalite/src/sim/interpreter.rs:1338:4
     |
1338 | fn bigint_pow2(width: usize) -> Interned<BigInt> {
     |    ^^^^^^^^^^^

warning: methods `fields_unit` and `into_fields` are never used
    --> crates/fayalite/src/sim/interpreter.rs:449:27
     |
 448 |           impl $Insn {
     |           ---------- methods in this implementation
 449 |               $vis const fn fields_unit(&self) -> &'static [InsnField<InsnFieldTypeTransformUnit>] {
     |                             ^^^^^^^^^^^
...
 521 |               $vis fn into_fields(self) -> std::array::IntoIter<InsnField<InsnFieldTypeTransformValue>, { $Insn::MAX_FIELDS }> {
     |                       ^^^^^^^^^^^
...
1435 | / impl_insns! {
1436 | |     #[insn = Insn, next_macro = next, branch_macro = branch]
1437 | |     pub(crate) fn State::run(&mut self) -> () {
1438 | |         #[state]
...    |
2106 | | }
     | |_- in this macro invocation
     |
     = note: this warning originates in the macro `impl_insns` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: method `offset` is never used
   --> crates/fayalite/src/sim/interpreter/parts.rs:490:19
    |
469 | impl<K: StatePartKind> StatePartIndexRange<K> {
    | --------------------------------------------- method in this implementation
...
490 |     pub(crate) fn offset(self, offset: StatePartIndex<K>) -> Self {
    |                   ^^^^^^

warning: methods `len` and `is_empty` are never used
   --> crates/fayalite/src/sim/interpreter/parts.rs:574:27
    |
573 |           impl<BK: InsnsBuildingKind> StateLayout<BK> {
    |           ------------------------------------------- methods in this implementation
574 |               pub(crate) fn len(&self) -> StateLen {
    |                             ^^^
...
580 |               pub(crate) fn is_empty(&self) -> bool {
    |                             ^^^^^^^^
...
677 | / get_state_part_kinds! {
678 | |     make_state_layout! {
679 | |         state_plural_fields;
680 | |         state_kinds;
681 | |     }
682 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_state_layout` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: methods `next_index` and `allocate` are never used
   --> crates/fayalite/src/sim/interpreter/parts.rs:592:27
    |
591 |           impl StateLayout<InsnsBuilding> {
    |           ------------------------------- methods in this implementation
592 |               pub(crate) fn next_index(&self) -> StateIndex {
    |                             ^^^^^^^^^^
...
598 |               pub(crate) fn allocate<BK: InsnsBuildingKind>(
    |                             ^^^^^^^^
...
677 | / get_state_part_kinds! {
678 | |     make_state_layout! {
679 | |         state_plural_fields;
680 | |         state_kinds;
681 | |     }
682 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_state_layout` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: method `is_empty` is never used
   --> crates/fayalite/src/sim/interpreter/parts.rs:631:27
    |
625 |           impl<BK: InsnsBuildingKind> TypeLayout<BK> {
    |           ------------------------------------------ method in this implementation
...
631 |               pub(crate) fn is_empty(&self) -> bool {
    |                             ^^^^^^^^
...
677 | / get_state_part_kinds! {
678 | |     make_state_layout! {
679 | |         state_plural_fields;
680 | |         state_kinds;
681 | |     }
682 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_state_layout` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: method `next_index` is never used
   --> crates/fayalite/src/sim/interpreter/parts.rs:652:27
    |
651 |           impl TypeLayout<InsnsBuilding> {
    |           ------------------------------ method in this implementation
652 |               pub(crate) fn next_index(&self) -> TypeIndex {
    |                             ^^^^^^^^^^
...
677 | / get_state_part_kinds! {
678 | |     make_state_layout! {
679 | |         state_plural_fields;
680 | |         state_kinds;
681 | |     }
682 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_state_layout` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: method `is_empty` is never used
   --> crates/fayalite/src/sim/interpreter/parts.rs:702:19
    |
693 | impl<K: StatePartKind, BK: InsnsBuildingKind> StatePartLayout<K, BK> {
    | -------------------------------------------------------------------- method in this implementation
...
702 |     pub(crate) fn is_empty(&self) -> bool {
    |                   ^^^^^^^^

warning: struct `StateLen` is never constructed
   --> crates/fayalite/src/sim/interpreter/parts.rs:809:27
    |
809 |           pub(crate) struct StateLen {
    |                             ^^^^^^^^
...
863 | / get_state_part_kinds! {
864 | |     make_state_len! {
865 | |         state_plural_fields;
866 | |         state_kinds;
...   |
870 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_state_len` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: method `only_small` is never used
   --> crates/fayalite/src/sim/interpreter/parts.rs:849:33
    |
824 |           impl TypeLen {
    |           ------------ method in this implementation
...
849 |               pub(crate) const fn only_small(mut self) -> Option<StatePartLen<StatePartKindSmallSlots>> {
    |                                   ^^^^^^^^^^
...
863 | / get_state_part_kinds! {
864 | |     make_state_len! {
865 | |         state_plural_fields;
866 | |         state_kinds;
...   |
870 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_state_len` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: struct `StateIndex` is never constructed
   --> crates/fayalite/src/sim/interpreter/parts.rs:926:27
    |
926 |           pub(crate) struct StateIndex {
    |                             ^^^^^^^^^^
...
949 | / get_state_part_kinds! {
950 | |     make_state_index! {
951 | |         state_plural_fields;
952 | |         state_kinds;
953 | |     }
954 | | }
    | |_- in this macro invocation
    |
    = note: this warning originates in the macro `make_state_index` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: struct `StateIndexRange` is never constructed
    --> crates/fayalite/src/sim/interpreter/parts.rs:963:27
     |
 963 |           pub(crate) struct StateIndexRange {
     |                             ^^^^^^^^^^^^^^^
...
1041 | / get_state_part_kinds! {
1042 | |     make_state_index_range! {
1043 | |         state_plural_fields;
1044 | |         state_kinds;
...    |
1047 | | }
     | |_- in this macro invocation
     |
     = note: this warning originates in the macro `make_state_index_range` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: methods `start`, `len`, and `is_empty` are never used
    --> crates/fayalite/src/sim/interpreter/parts.rs:969:27
     |
 968 |           impl StateIndexRange {
     |           -------------------- methods in this implementation
 969 |               pub(crate) fn start(self) -> StateIndex {
     |                             ^^^^^
...
 975 |               pub(crate) fn len(self) -> StateLen {
     |                             ^^^
...
 981 |               pub(crate) fn is_empty(self) -> bool {
     |                             ^^^^^^^^
...
1041 | / get_state_part_kinds! {
1042 | |     make_state_index_range! {
1043 | |         state_plural_fields;
1044 | |         state_kinds;
...    |
1047 | | }
     | |_- in this macro invocation
     |
     = note: this warning originates in the macro `make_state_index_range` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: method `offset` is never used
    --> crates/fayalite/src/sim/interpreter/parts.rs:1023:27
     |
 991 |           impl TypeIndexRange {
     |           ------------------- method in this implementation
...
1023 |               pub(crate) fn offset(self, offset: TypeIndex) -> Self {
     |                             ^^^^^^
...
1041 | / get_state_part_kinds! {
1042 | |     make_state_index_range! {
1043 | |         state_plural_fields;
1044 | |         state_kinds;
...    |
1047 | | }
     | |_- in this macro invocation
     |
     = note: this warning originates in the macro `make_state_index_range` which comes from the expansion of the macro `get_state_part_kinds` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: methods `is_unique` and `is_shared` are never used
  --> crates/fayalite/src/util/alternating_cell.rs:59:19
   |
40 | impl<T: ?Sized> AlternatingCell<T> {
   | ---------------------------------- methods in this implementation
...
59 |     pub(crate) fn is_unique(&self) -> bool {
   |                   ^^^^^^^^^
...
62 |     pub(crate) fn is_shared(&self) -> bool {
   |                   ^^^^^^^^^

warning: function `tcl_escape` is never used
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:362:4
    |
362 | fn tcl_escape(s: impl AsRef<str>) -> String {
    |    ^^^^^^^^^^

warning: field `0` is never read
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:382:12
    |
382 |     Module(Module<Bundle>),
    |     ------ ^^^^^^^^^^^^^^
    |     |
    |     field in this variant
    |
    = note: `AnnotationTarget` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
382 -     Module(Module<Bundle>),
382 +     Module(()),
    |

warning: field `0` is never read
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:383:9
    |
383 |     Mem(Mem),
    |     --- ^^^
    |     |
    |     field in this variant
    |
    = note: `AnnotationTarget` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
    |
383 -     Mem(Mem),
383 +     Mem(()),
    |

warning: method `source_location` is never used
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:388:8
    |
387 | impl AnnotationTarget {
    | --------------------- method in this implementation
388 |     fn source_location(self) -> SourceLocation {
    |        ^^^^^^^^^^^^^^^

warning: field `output` is never read
   --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:399:5
    |
398 | struct PcfFileWriter<W: fmt::Write> { //TODO
    |        ------------- field in this struct
399 |     output: W,
    |     ^^^^^^

warning: `fayalite` (lib) generated 77 warnings (run `cargo fix --lib -p fayalite` to apply 29 suggestions)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 00s
     Running `target/debug/examples/blinky yosys-nextpnr-ecp5 --nextpnr /home/alex/.guix-profile/bin/nextpnr-ecp5 --platform orangecrab-85k -o target/blinky-out --ecppack /home/alex/.guix-profile/bin/ecppack --placeholder-dir /tmp/anyPathBuf/orangecrab_r0.2.1.pcf --yosys /home/alex/.guix-profile/bin/yosys`
error: invalid value '/home/alex/.guix-profile/bin/nextpnr-ecp5' for '--nextpnr <NEXTPNR>': nextpnr: failed to resolve "/home/alex/.guix-profile/bin/nextpnr-ecp5" to a valid program: cannot find binary path

For more information, try '--help'.
make: *** [Makefile:6: all] Error 2