)]}'
{
  "commit": "e730a626882c6d00a74cdcfd1747f0197bf9cf44",
  "tree": "a7a29eae874a464748c7b32be312af15fbad82a9",
  "parents": [
    "386a147b58826c4acac32efb3952ccd897ed29d3"
  ],
  "author": {
    "name": "Konstantin Shcheglov",
    "email": "scheglov@google.com",
    "time": "Fri Feb 20 09:47:31 2026 -0800"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Feb 20 09:47:31 2026 -0800"
  },
  "message": "DeCo. Centralize resolver scope helpers in ScopeContext.\n\nExpand ScopeContext into the single place that manages resolver\nname-scope transitions, and migrate visitors to use it directly.\n\nScopeContext now:\n- Owns the current name scope and handles push/pop via withScope().\n- Provides focused helpers for common resolver scopes:\n  - withLocalScope(), withInstanceScope(), withExtensionScope()\n  - withTypeParameterScope() and withTypeParameterList()\n  - withFormalParameterScope()\n  - withConstructorInitializerScope() and withPrimaryParameterScope()\n  - withDocImportScope() for documentation comment resolution\n- Renames walkMixinDeclarationScopes() to visitMixinDeclaration() and routes\n  mixin traversal through the shared helper.\n\nUpdate ResolutionVisitor, ScopeResolverVisitor, and ReferenceResolver\nto:\n- Remove temporary routing getters/methods and ad-hoc try/finally scope\n  management.\n- Use the new ScopeContext helpers for consistent scoping across declarations,\n  function bodies, and DeCo/primary-constructor-related initializer contexts.\n- Reduce duplicated scope wiring and keep scope behavior localized for easier\n  future evolution.\n\nChange-Id: I753cccc4ed14b4b7c4f34f9c91f5d00895f84c5f\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/481981\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@google.com\u003e\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9834f6c71474886b0b5ed0895055daee67d1aebe",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart",
      "new_id": "9828aa6a5ea86cf945120cb7fccc40a61d2b9d25",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart"
    },
    {
      "type": "modify",
      "old_id": "4c7ed14762d0b309c2ea950fab42d81644dc0970",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/dart/resolver/scope_context.dart",
      "new_id": "940d3a8e7462d9ca5559595f47625e3f01166fbe",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/dart/resolver/scope_context.dart"
    },
    {
      "type": "modify",
      "old_id": "e60f3f859517259789b16fc347cbb13fe546c0e3",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/generated/resolver.dart",
      "new_id": "dbbdc1212fae14700657c6a764d4ff8c865dafc1",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/generated/resolver.dart"
    },
    {
      "type": "modify",
      "old_id": "3ebc222641ab06bce2481a7cd76851c7a098a58e",
      "old_mode": 33188,
      "old_path": "pkg/analyzer/lib/src/summary2/reference_resolver.dart",
      "new_id": "0d6152af999a156830f32882ddcb04f0a286bd2b",
      "new_mode": 33188,
      "new_path": "pkg/analyzer/lib/src/summary2/reference_resolver.dart"
    }
  ]
}
