Michael J Klein

Results 35 issues of Michael J Klein

### Problem Given list of unit tests from: https://github.com/noir-lang/noir/issues/5361 Implement those unit tests. ### Happy Case Implement unit tests for all key cases in the omnibus issue: https://github.com/noir-lang/noir/issues/5173 ### Project...

enhancement

### Problem `static_assert` failing will prevent `println`'s from happening in tests ### Happy Case Ensure that we maintain a good UX for when `static_assert` fails, e.g. by adding support for...

enhancement

### Problem the following [code](https://github.com/noir-lang/noir/blob/master/compiler/noirc_frontend/src/hir/resolution/resolver.rs#L418) in the resolver scans through all previous global's whenever a global is added, resulting in `O(num_globals^2)`: ```rust // This check is necessary to maintain the...

enhancement

# Description ## Problem\* Resolves https://github.com/noir-lang/noir/issues/4795 ## Summary\* This PR simply adds a check on mutable captures: when not `&mut`, a type checking error is thrown. ## Additional Context ##...

### Problem We currently don't use checked arithmetic e.g. when evaluating array lengths or other compile time constants: ```rust // try_eval_array_length_id_with_fuel match infix.operator.kind { BinaryOpKind::Add => Ok(lhs + rhs), BinaryOpKind::Subtract...

enhancement

# Description ## Problem\* Resolves https://github.com/noir-lang/noir/issues/6263 ## Summary\* This test found the following case where instantiating with or without a call to `canonicalize` beforehand gives different results: ```bash thread 'tests::arithmetic_generics::instantiate_before_or_after_canonicalize'...

### Problem `bn254` `FieldElement`'s are defined in [`acir_field`](https://github.com/noir-lang/noir/blob/4274efada969847e338e56793701c2f988c6f42c/acvm-repo/acir_field/src/lib.rs#L18) ```rust pub type FieldElement = field_element::FieldElement; ``` Where [`field_element::FieldElement`](https://github.com/noir-lang/noir/blob/4274efada969847e338e56793701c2f988c6f42c/acvm-repo/acir_field/src/field_element.rs#L13) wraps its argument and ensures it's a `PrimeField`: ```rust pub struct FieldElement(F); ```...

enhancement

### Problem Some ACIR opcodes have built-in assumptions about their inputs/outputs, e.g. - Whether a point is on the curve and/or at infinity - An input/output being within a range...

enhancement

### Problem [Trait inheritance](https://github.com/noir-lang/noir/pull/6252) allows traits to require other traits, but explicitly including all required traits in functions or `impl`'s can become repetitive. ### Happy Case Once https://github.com/noir-lang/noir/issues/6314 is fixed,...

enhancement

### Aim Attempted to compile the following programs: Single inheritance: ```noir trait Foo { fn foo(self) -> Self; } trait Baz: Foo {} impl Baz for T where T: Foo...

bug