prometeu-studio/docs/pbs/pull-requests/PR-015-pbs-this-self-context-validation.md
2026-03-24 13:42:21 +00:00

1.2 KiB

PR-015 - PBS this/Self Context Validation

Briefing

The frontend accepts this and Self outside allowed contexts without required diagnostics. This PR adds explicit static checks for invalid usage.

Motivation

Context-free acceptance of this/Self is non-conformant and creates type ambiguity.

Target

  • this expression analysis.
  • Self type-surface analysis in declarations.
  • Error catalog and deterministic diagnostics.

Scope

  • Reject this outside struct method, service method, and ctor bodies.
  • Reject Self outside struct/service method declarations and ctors.

Method

  • Add callable-context metadata into flow/type validation.
  • Emit dedicated diagnostics for invalid this and invalid Self usage.
  • Keep valid owner contexts unchanged.

Acceptance Criteria

  • Invalid this usage emits deterministic static diagnostic.
  • Invalid Self usage emits deterministic static diagnostic.
  • Valid struct/service/ctor contexts remain accepted.

Tests

  • Add positive tests for valid this/Self contexts.
  • Add negative tests for top-level functions and unrelated declarations.
  • Run declaration + flow semantic suites.

Non-Goals

  • Introducing new receiver features.
  • Altering Self syntax.