Skip to content
Trigora
Start building →

Unsupported constructs

The compiler reports unsupported constructs during trigora dev or deployment, before an Execution can start.

Ordinary computation between durable operations is supported, including one-level destructuring. See Supported language semantics for the complete supported language inventory.

  • A rest parameter, *args, a binding pattern, or a second program entry. Entry parameters and defaults that do compile are on Programs.
  • TypeScript this, classes, prototypes, generators, and async arrows.
  • A helper or closure frame that performs a durable operation. Durable operations stay in the program entry. A closure value may live across a wait.
  • Classes, traits, macros, and async helpers in Rust. See Rust.
  • Stored promises, spread or dynamic arrays inside Promise.all / Promise.race, .then, Promise.any, and Promise.allSettled.
  • A bare, assigned, stored, pre-awaited, starred, listed, or nested gather / race, and asyncio.gather, asyncio.wait, and asyncio.FIRST_COMPLETED. The forms that compile are on Structured concurrency.
  • Unnamed effects. effect requires a non-empty string key.
  • Non-literal effect keys and event names.
  • Executing the Program module as a normal script.

Unsupported constructs produce a compile error; Trigora does not substitute a different execution or recovery model. Promise.any and Promise.allSettled are not supported. Support for additional authoring languages is planned.