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]); | ^^^^^^^^^^^^^^^ | = 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 { | ------------------------- 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 { | ^^^^^ ... 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 + '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 CompiledExpr { | ----------------------------- 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 { | ------------------------- method in this implementation ... 628 | fn field_by_name(self, name: Interned) -> CompiledExpr { | ^^^^^^^^^^^^^ 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; | ^^^^ 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>, | ^^^^^^^^^^ ... 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 { | ^^^^^^^^^^^^^^^^^ warning: multiple associated items are never used --> crates/fayalite/src/sim/interpreter.rs:1079:19 | 1078 | impl StatePartIndexMap { | ------------------------------------------------- associated items in this implementation 1079 | pub(crate) fn new() -> Self { | ^^^ ... 1085 | pub(crate) fn get(&self, key: StatePartIndex) -> Option<&V> { | ^^^ ... 1088 | pub(crate) fn get_mut(&mut self, key: StatePartIndex) -> Option<&mut V> { | ^^^^^^^ ... 1091 | pub(crate) fn keys(&self) -> impl Iterator> + '_ { | ^^^^ ... 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, &V)> + '_ { | ^^^^ ... 1105 | pub(crate) fn iter_mut(&mut self) -> impl Iterator, &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, value: V) -> Option { | ^^^^^^ ... 1119 | pub(crate) fn remove(&mut self, key: StatePartIndex) -> Option { | ^^^^^^ ... 1122 | pub(crate) fn entry(&mut self, key: StatePartIndex) -> 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 { | ------------------------- 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 { | ^^^^^^^^^^^ 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] { | ^^^^^^^^^^^ ... 521 | $vis fn into_fields(self) -> std::array::IntoIter, { $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 StatePartIndexRange { | --------------------------------------------- method in this implementation ... 490 | pub(crate) fn offset(self, offset: StatePartIndex) -> Self { | ^^^^^^ warning: methods `len` and `is_empty` are never used --> crates/fayalite/src/sim/interpreter/parts.rs:574:27 | 573 | impl StateLayout { | ------------------------------------------- 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 { | ------------------------------- methods in this implementation 592 | pub(crate) fn next_index(&self) -> StateIndex { | ^^^^^^^^^^ ... 598 | pub(crate) fn allocate( | ^^^^^^^^ ... 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 TypeLayout { | ------------------------------------------ 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 { | ------------------------------ 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 StatePartLayout { | -------------------------------------------------------------------- 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> { | ^^^^^^^^^^ ... 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 AlternatingCell { | ---------------------------------- 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) -> String { | ^^^^^^^^^^ warning: field `0` is never read --> crates/fayalite/src/vendor/lattice/yosys_nextpnr.rs:382:12 | 382 | Module(Module), | ------ ^^^^^^^^^^^^^^ | | | 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), 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 { //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: 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