)]}'
{
  "commit": "bdfede5b0885721849d2bcb5911986e4e235d1dc",
  "tree": "792dace55927df3fe29fd5ce5a89e49c5778d878",
  "parents": [
    "c6a9c9536e4d33a86a89ff438d204a498c3d3d6f"
  ],
  "author": {
    "name": "Konstantin Shcheglov",
    "email": "scheglov@google.com",
    "time": "Fri Feb 20 11:18:28 2026 -0800"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Feb 20 11:18:28 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\n\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\nThis is reland of https://dart-review.googlesource.com/c/sdk/+/481981 with support for ScopeResolverVisitor.visitAnonymousMethodInvocation, see PS(s).\n\nChange-Id: Ieee6c732872fc32af86710237972cd7397ca54dd\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/482365\nReviewed-by: Paul Berry \u003cpaulberry@google.com\u003e\nCommit-Queue: Konstantin Shcheglov \u003cscheglov@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": "d341b9fe1c27aa3e35f8e040abf3a94710a7282b",
      "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"
    }
  ]
}
