Skip to content

[Analyzer] Harden RT semantics and purity boundaries #9

Description

@mao2009

親Issue

#6

目的

[PureMethod]によるReferential Transparency検証をv1.0の中核品質まで引き上げ、何をpureとみなすかを明確にする。

スコープ

  • static mutable state
  • instance state / fields / properties
  • property/indexer access
  • method invocation
  • constructors
  • delegates/lambdas
  • async/await
  • exception/throw等の制御境界
  • Console/File/Network等のside effect境界

方針

単純な禁止API一覧ではなく、「純粋メソッドが観測可能な状態変化を持たない」という意味論を基準に判定する。

完了条件

  • pure/non-pureの判定原則が文書化されている
  • 主要な境界ケースにAnalyzer Testsがある
  • false positive / false negative候補を整理している
  • Diagnostic messageがルールの意味と一致している
  • v1.0で保証する範囲と保証しない範囲が明示されている

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions