diff --git a/compiler/noirc_evaluator/src/ssa.rs b/compiler/noirc_evaluator/src/ssa.rs
index f7b6dfd3771..7e362599fb5 100644
--- a/compiler/noirc_evaluator/src/ssa.rs
+++ b/compiler/noirc_evaluator/src/ssa.rs
@@ -146,7 +146,7 @@ impl SsaProgramArtifact {
/// Compiles the [`Program`] into [`ACIR``][acvm::acir::circuit::Program].
///
-/// The output ACIR is is backend-agnostic and so must go through a transformation pass before usage in proof generation.
+/// The output ACIR is backend-agnostic and so must go through a transformation pass before usage in proof generation.
#[allow(clippy::type_complexity)]
#[tracing::instrument(level = "trace", skip_all)]
pub fn create_program(
diff --git a/compiler/noirc_evaluator/src/ssa/opt/flatten_cfg/value_merger.rs b/compiler/noirc_evaluator/src/ssa/opt/flatten_cfg/value_merger.rs
index c59134e4ecc..de75d34565e 100644
--- a/compiler/noirc_evaluator/src/ssa/opt/flatten_cfg/value_merger.rs
+++ b/compiler/noirc_evaluator/src/ssa/opt/flatten_cfg/value_merger.rs
@@ -304,7 +304,7 @@ impl<'a> ValueMerger<'a> {
let mut current_then = then_value;
let mut current_else = else_value;
- // Arbitrarily limit this to looking at at most 10 past ArraySet operations.
+ // Arbitrarily limit this to looking at most 10 past ArraySet operations.
// If there are more than that, we assume 2 completely separate arrays are being merged.
let max_iters = 2;
let mut seen_then = Vec::with_capacity(max_iters);
diff --git a/compiler/noirc_frontend/src/elaborator/mod.rs b/compiler/noirc_frontend/src/elaborator/mod.rs
index 3b8158667f9..7bdb7d2886b 100644
--- a/compiler/noirc_frontend/src/elaborator/mod.rs
+++ b/compiler/noirc_frontend/src/elaborator/mod.rs
@@ -247,7 +247,7 @@ impl<'context> Elaborator<'context> {
}
// We must wait to resolve non-literal globals until after we resolve structs since struct
- // globals will need to reference the struct type they're initialized to to ensure they are valid.
+ // globals will need to reference the struct type they're initialized to ensure they are valid.
while let Some((_, global)) = this.unresolved_globals.pop_first() {
this.elaborate_global(global);
}
diff --git a/compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs b/compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs
index 9b47a104a40..4511537a1cc 100644
--- a/compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs
+++ b/compiler/noirc_frontend/src/hir/def_collector/dc_crate.rs
@@ -404,7 +404,7 @@ impl DefCollector {
resolved_module.errors.extend(collect_impls(context, crate_id, &def_collector.items.impls));
// We must wait to resolve non-integer globals until after we resolve structs since struct
- // globals will need to reference the struct type they're initialized to to ensure they are valid.
+ // globals will need to reference the struct type they're initialized to ensure they are valid.
resolved_module.resolve_globals(context, other_globals, crate_id);
// Resolve each function in the crate. This is now possible since imports have been resolved
diff --git a/compiler/noirc_frontend/src/lexer/token.rs b/compiler/noirc_frontend/src/lexer/token.rs
index 2199333e90f..d204191796c 100644
--- a/compiler/noirc_frontend/src/lexer/token.rs
+++ b/compiler/noirc_frontend/src/lexer/token.rs
@@ -460,7 +460,7 @@ impl fmt::Display for IntType {
impl IntType {
// XXX: Result