module: add check for missing injected arguments
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
34030faa9d
commit
393a3e5e5e
1 changed files with 6 additions and 0 deletions
|
|
@ -578,6 +578,12 @@ inline fn injectArgs(
|
||||||
continue :outer;
|
continue :outer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (@typeInfo(arg.type) == .Pointer and @hasDecl(std.meta.Child(arg.type), "IsInjectedArgument")) {
|
||||||
|
// Argument is declared as injectable, but we do not have a value to inject for it.
|
||||||
|
// This can be the case if e.g. a Mod() parameter is specified, but that module is
|
||||||
|
// not registered.
|
||||||
|
@compileError("mach: cannot inject argument of type: " ++ @typeName(arg.type) ++ " - is it registered in your program's top-level `pub const modules = .{};`?");
|
||||||
|
}
|
||||||
|
|
||||||
// First standard argument
|
// First standard argument
|
||||||
@field(args, arg.name) = std_args[std_args_index];
|
@field(args, arg.name) = std_args[std_args_index];
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue