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