diff options
| author | _ov4 <ov4@ov4.org> | 2026-10-17 10:35:33 +0000 |
|---|---|---|
| committer | _ov4 <ov4@ov4.org> | 2026-10-17 10:35:33 +0000 |
| commit | b47c302bbffd668334f307d512b674f804f8f2fc (patch) | |
| tree | 4dfdecb510789114618545b4d8d3a03a5b52e511 /AGENTS/CONVENTIONS.md | |
| parent | e572d278a44d286c8713d0ee4af9c72a3d1ca73c (diff) | |
docs: document OVERLOAD
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS/CONVENTIONS.md')
| -rw-r--r-- | AGENTS/CONVENTIONS.md | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/AGENTS/CONVENTIONS.md b/AGENTS/CONVENTIONS.md index f912e79..5ab7459 100644 --- a/AGENTS/CONVENTIONS.md +++ b/AGENTS/CONVENTIONS.md @@ -142,7 +142,10 @@ arguments through `emitCoercedExpr`, and dispatches whole-array arguments to `ArrayHandler::emitArrayArgument`. RETURN values go through `emitCoercedExpr` against the declared return type. Top-level prototypes are pre-registered (after the TYPE pre-pass) before statement emission, so call-before-definition is fine; a call with -no registered signature is a compile error. Global function names except MAIN get no mangling, so +no registered signature is a compile error. OVERLOAD signatures append canonical +parameter types to the link name; ordinary names except MAIN get no mangling. +`getOverloads` filters by visibility and `resolveCall` selects exact static types/ranks. +Return types, modes and bounds never distinguish overloads. In all cases, `emitPrototype` rejects names that collide with runtime/libc symbols (`isReservedRuntimeName`), builtins, or enum values. Signatures retain the first declaration spelling for LLVM lookup, independently of call-site casing. Methods use |
