Michael J Klein

Results 35 issues of Michael J Klein

### Problem Investigate and/or test that the following near-inverse stdlib function pairs are well-optimized by the SSA passes: - `to_be_bytes` / `from_be_bytes` (needs range checks and / or modulo) -...

enhancement

### Problem Tab-completion in [bash](https://www.gnu.org/software/gnuastro/manual/html_node/Bash-TAB-completion-tutorial.html) and zsh for `nargo` would be helpful so that typing partial commands like `nargo co` or `nargo n`, the commands are completed to `nargo compile`,...

enhancement
nargo

### Aim https://github.com/noir-lang/noir/pull/6137 adds the warning `EvaluatedGlobalIsntU32` when `eval_global_as_array_length` is used on non-`u32` types. This is connected to the following (`test`: issue) pairs: - `numeric_generic_field_larger_than_u32`: https://github.com/noir-lang/noir/issues/6125 - `numeric_generic_field_arithmetic_larger_than_u32`: https://github.com/noir-lang/noir/issues/6126 ###...

bug

### Aim Similar to [5462](github.com/noir-lang/noir/issues/5462), but the `if`'s predicate isn't known at compile time. Attempted to `nargo execute` the following program: ```noir fn main(x: bool) { println("x's value:"); println(x); println("");...

bug

### Problem Arithmetic generics have gotten more complex recently and we only have a handful of unit tests to check them. This seems insufficient since we have 5 `BinaryTypeOperator`'s, rules...

enhancement

### Problem `evaluate_to_field_element` (from https://github.com/noir-lang/noir/pull/6137) currently checks the kind of its input: ```rust if let Some((binding, binding_kind)) = self.get_inner_type_variable() { if let TypeBinding::Bound(binding) = &*binding.borrow() { if kind.unifies(&binding_kind) { return...

enhancement

### Problem It's currently impossible to use `u16` for array sizes, but it would be useful for many arrays (`u16::MAX == 65535`) ```rust #[test] fn numeric_generic_u16_array_size() { let src =...

enhancement

### Problem The following test checks that a literal `-1` is out of range for `u8`, and currently fails: ```rust #[test] fn cast_negative_one_to_u8_size_checks() { let src = r#" fn main()...

enhancement

### Aim The `parse_all_failing` tests in [`parse_block`](https://github.com/noir-lang/noir/blob/master/compiler/noirc_frontend/src/parser/parser.rs#L1403) include a test case with a message where the expected and found tokens are both empty, defaulting to `EOF`. By modifying the following,...

bug
parser

### Problem `Kind::Any` was implicitly added (as `None: Option`) in https://github.com/noir-lang/noir/pull/5837 and is explicitly added in https://github.com/noir-lang/noir/pull/6094 It's a `Kind` that unifies with all other `Kind`s and thus can reduce...

enhancement