Files
sdk/pkg/analyzer/lib
Konstantin Shcheglov 9eb648a124 Elements. Compute class flags on ClassElementImpl
Move class-related flags off fragments and compute them directly on
`ClassElementImpl`. This reduces coupling to fragments and avoids
duplicated logic.

Changes:
- Compute `isConstructable` as `!isSealed && !isAbstract` instead of
  delegating to `_firstFragment`.
- Compute `isExhaustive` as `isSealed`.
- Remove `hasGenerativeConstConstructor`, `isConstructable`, and
  `isExhaustive` getters from `ClassFragmentImpl`.
- In constant verifier, resolve the enclosing class via
  `container.declaredFragment!.element` and check `ClassElementImpl`
  rather than fragment types.

Why:
- Centralizes flag computation on the element, making semantics clearer.
- Decreases fragment dependencies and maintenance surface.

Change-Id: I4b7153a4a55037e6dc12e18a32161a3472902eeb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/446008
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2025-08-20 08:56:29 -07:00
..