Skip to content

Release v4.25.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 13:01
921a24d

A command can read the same view more than once by naming each read. This is the first increment of decision 0003; the executable semantic model still does not bind reads (the runtime mapping waits on Cratis/Chronicle#4138).

Added

  • reads <View> as <alias> [by <property>] names a read, so a command can read the same view twice, for example reads Account as source by fromId and reads Account as destination by toId. A require path can use the alias as its qualifier: require source.balance >= amount.
  • PLAY0410: a command reads the same view more than once and not every read has an alias.
  • PLAY0411: two reads of one command use the same alias.
  • PLAY0412: a reads alias has the same name as one of the command's properties.
  • ReadsSyntax.Alias, an init-only property, carries the alias in the syntax tree, syntax JSON, the printer, the TextMate grammar and the Monaco language package (completion, keyword docs, symbols).

Changed

  • A require path qualified with a view the command reads more than once now says to use one of that view's aliases and lists them, instead of claiming the command does not read the view.
  • PLAY0175 also reports as, by or reads used as an alias. Aliases, like by properties, are lower-case identifiers.
  • Decision 0003 notes that its runtime precondition is only partly met (tracked in Cratis/Chronicle#4138).

Deprecated

  • PLAY0176 is retired and no longer reported. Two identical reads lines used to give one PLAY0176 with the second line dropped; now both lines are kept and reported as PLAY0410. The DiagnosticCodes.DuplicateReads constant remains for compatibility.