Docs menu

E084: caller_location only works in a function that asks for it

What compiler error E084 means, and how to fix it.

caller_location is the file and line of whoever called this function. It is how a library function can say “you called me wrongly, here” instead of pointing inside the library. Because it costs a hidden extra argument on every call, a function has to opt in, by writing @caller_location on the line before fn:

Example
fn not_marked(): string {    return caller_location;       // this function never asked for it}

Add the marker:

Example
@caller_locationfn marked(): string {    return caller_location;}

Or remove the use if you didn’t mean to ask for the caller’s position.

@caller_location goes on the line before fn (or before an operator declaration). It can share that position with the @ownership(...) and @ffi(...) annotations on a function.

Run turf --explain E084 in a terminal to read this again.

Last updated: Oct 15, 2026Edit this page on GitHub

Esc

Type to search.