diff --git a/compiler/noirc_frontend/src/hir/comptime/scan.rs b/compiler/noirc_frontend/src/hir/comptime/scan.rs index 2e13daea527..50c8ccb4557 100644 --- a/compiler/noirc_frontend/src/hir/comptime/scan.rs +++ b/compiler/noirc_frontend/src/hir/comptime/scan.rs @@ -34,6 +34,12 @@ impl<'interner> Interpreter<'interner> { /// These nodes will be modified in place, replaced with the /// result of their evaluation. pub fn scan_function(&mut self, function: FuncId) -> IResult<()> { + // Don't scan through functions that are already comptime. They may use comptime-only + // features (most likely HirExpression::Quote) that we'd otherwise error for. + if self.interner.function_modifiers(&function).is_comptime { + return Ok(()); + } + let function = self.interner.function(&function); let state = self.enter_function();