📝 docs: EQ2010 lists the implicit calls, the variant receivers and the free positions (EN, pt-BR, es, fr, de)
The row now says what #944's last commits refuse, a [ServerOnly] method C#
calls without the code naming it and a call through a variant receiver, and
that a base list's type argument, a dictionary's and a string literal are
written as nothing (#945).
📝 docs: four more ways to reach a member no twin holds are refused (EN, pt-BR, es, fr, de)
The Diagnostics page's EQ2010 row says that a [ServerOnly] member is refused
as a bare method group as through this., and so is an extension block's,
which no twin holds either; that a [ServerOnly] operator or conversion is
refused wherever client code applies it, a conversion implicit or a cast, a
compound assignment, a tuple equality, a foreach's element and a
deconstruction's part; and that an instance member of a kept-out type is
refused where client code reads it off a value (Copilot's review of #944).
The row changes in every language the page is written in.
📝 docs: a call through a contract a [ServerOnly] method fulfils is refused (EN, pt-BR, es, fr, de)
Diagnostics, Compiler, SupportedFeatures, BuildFlow and ServerIntegration say
that EQ2010 also refuses a call, or a method group, that reaches a
[ServerOnly] method through the interface member it implements or the method
it overrides, wherever its receiver can be the type that keeps it, across the
app and the projects it references: the twin leaves the method out. A call
bound to a method that is not [ServerOnly], a call through base, a call on a
type that cannot hold the method and a contract no client code calls, as
IServerPrefetch's PrefetchAsync, build (#816). Each page changes in every
language it is written in.
📝 docs: a page's boundary reads only what crosses (EN, pt-BR, es, fr, de)
Diagnostics, Compiler, SupportedFeatures, BuildFlow and ServerIntegration
say which code is client code: every member of a component its module
holds, stateless or stateful, and every class a page reaches. A Server
Action's body and a [ServerOnly] member are never read as client code,
and a [ServerOnly] method leaves every twin. A server API is told once
where the compiler writes it, by its namespace, never also as EQ2004, and
a class that reads a file is EQ2112. EQ2010 refuses a type of the app the
build writes no module for wherever client code names it, a top-level one
included, and the positions the module writes as nothing are free
(#816, #823). Each page changes in every language it is written in.
📝 docs: the diagnostics reference reads in Spanish, French and German