fix: reject bare import bindings
This commit is contained in:
@@ -583,6 +583,35 @@ exact-argv, command, and persistent-workdir observers, the package suite proves
|
||||
archive-only link argv and exact warm/rejection-state behavior without
|
||||
duplicating those broader mechanisms in this observer.
|
||||
|
||||
The focused dual-stage `bare_import_bindings_require_selectors` observer is the
|
||||
acceptance owner for the rule that an effective default or explicit import
|
||||
binding is a file-local package-name object, not a value or type. Its generated
|
||||
matrix must prove exact `use of package BINDING not in selector` value
|
||||
diagnostics and `BINDING (package name) is not a type` type diagnostics; an
|
||||
unused diagnostic for every named binding that has only bare occurrences; and
|
||||
the absence of that unused diagnostic once a legal selector independently uses
|
||||
the binding. It must cover occurrence order, repeated bare occurrences,
|
||||
explicit aliases, builtin-spelled bindings including `len`, `size`, and `align`,
|
||||
qualified value and type controls, nested value and type contexts, sibling-file
|
||||
isolation, blank imports, rejected `init` bindings, and missing-target
|
||||
precedence. Type-shaped arguments parsed for `size` and `align` must retain type
|
||||
checking when either spelling is instead an import binding; neither stage may
|
||||
fall into an internal expression-kind diagnostic.
|
||||
|
||||
The same observer must exercise ordinary root and imported builds plus
|
||||
production, same-package test, external-test, and honest test-only source
|
||||
roles. Cstage and WWstage must agree on status and normalized stdout/stderr,
|
||||
including diagnostic order and source position, and valid controls must produce
|
||||
byte-identical comparable artifacts and equal runtime results. Its lifecycle
|
||||
matrix must include cold rejection with no public or retained product, warm
|
||||
preservation of every prior committed work-file and public byte, imported
|
||||
dependency failure, invalidation followed by rejection, subsequent valid
|
||||
recovery, and exact transaction-residue checks. Legal selector controls retain
|
||||
ordinary graph/action, compilation, linking, publication, persistence, and
|
||||
reuse behavior. Producer/runtime failure, concurrency, interruption, process
|
||||
topology, and descendant cleanup remain with their established observers
|
||||
because this checker-owned rejection creates no producer or runtime boundary.
|
||||
|
||||
The focused dual-stage `effective_init_imports_never_enter_binding_recovery`
|
||||
observer is
|
||||
the acceptance owner for imports whose effective file-local qualifier is
|
||||
|
||||
Reference in New Issue
Block a user