Module: Rigor::Effects
- Defined in:
- lib/rigor/effects.rb,
lib/rigor/effects/label.rb,
lib/rigor/effects/origin.rb,
lib/rigor/effects/catalog.rb,
lib/rigor/effects/scanner.rb,
lib/rigor/effects/summary.rb,
lib/rigor/effects/envelope.rb,
lib/rigor/effects/identity.rb,
lib/rigor/effects/registry.rb,
lib/rigor/effects/snapshot.rb,
lib/rigor/effects/collector.rb,
lib/rigor/effects/discharge.rb,
lib/rigor/effects/label_set.rb,
lib/rigor/effects/narrowing.rb,
lib/rigor/effects/unit_scan.rb,
lib/rigor/effects/method_key.rb,
lib/rigor/effects/propagator.rb,
lib/rigor/effects/attribution.rb,
lib/rigor/effects/path_finder.rb,
lib/rigor/effects/taint_cause.rb,
lib/rigor/effects/effect_table.rb,
lib/rigor/effects/entry_points.rb,
lib/rigor/effects/label_intent.rb,
lib/rigor/effects/liskov_check.rb,
lib/rigor/effects/plugin_facts.rb,
lib/rigor/effects/inline_anchor.rb,
lib/rigor/effects/snapshot_diff.rb,
lib/rigor/effects/envelope_check.rb,
lib/rigor/effects/envelope_index.rb,
lib/rigor/effects/file_collection.rb,
lib/rigor/effects/framework_units.rb,
lib/rigor/effects/local_ownership.rb,
lib/rigor/effects/config_envelopes.rb,
lib/rigor/effects/signature_sources.rb,
lib/rigor/effects/mutation_classifier.rb,
lib/rigor/effects/unknown_label_check.rb,
lib/rigor/effects/unknown_label_report.rb
Overview
The effect-label vocabulary (ADR-103; normative in
docs/type-specification/effect-labels.md).
Two layers live here. The label language — the grammar, the subsumption relation, the label
sets a summary and an envelope are made of, the registry that says which spellings are
recognised, and the closed enum of taint causes. And, on top of it, the observational machinery
of #379: the Collector that records what the typer decided, the Summary / FileCollection
values it produces, the built-in Catalog, and the Propagator that closes them into an
EffectTable. On top of both sits the one thing here that DOES judge: an Envelope — an
author-declared upper bound read off the project's RBS or written by convention in .rigor.yml
(ConfigEnvelopes) — and the two checks that judge one: EnvelopeCheck compares a method against
its own bound (effect.envelope-exceeded, #383 / #385) and LiskovCheck an override against the
bound it inherits (effect.liskov-widened, #386). The same declarations are read a third way, which
judges nothing: EnvelopeIndex resolves them per CALL SITE, so a caller reads what its callee
promised as a ≤ bound. Beside them sit the project's policy
surfaces: Attribution colours code Rigor never analysed, into the declared lane, and Discharge
applies effects.tolerated: per origin at judgment time. The effect snapshot (#381) and the
vocabulary diagnostic (#384) are their own slices.
"Effect label", "effect summary" and "effect envelope" are trapped compounds in CONTEXT.md;
bare "effect" still names Rigor::FlowContribution's flow-effect bundle.
Defined Under Namespace
Modules: Collector, ConfigEnvelopes, EntryPoints, EnvelopeCheck, FrameworkUnits, Identity, Label, LabelIntent, LiskovCheck, LocalOwnership, MethodKey, Narrowing, PathFinder, Propagator, SignatureSources, TaintCause, UnknownLabelCheck Classes: Attribution, Catalog, Discharge, EffectTable, Envelope, EnvelopeIndex, FileCollection, InlineAnchor, LabelSet, MutationClassifier, Origin, PluginFacts, Registry, Scanner, Snapshot, SnapshotDiff, Summary, UnitScan, UnknownLabelReport