8c6366e66e
Extension type augmentations do not have representation declarations, so an `ExtensionTypeDeclaration` can no longer always expose its name through a primary constructor. Add `ExtensionTypeDeclaration.namePart` as the canonical API for the declared name and type parameters, and keep `primaryConstructor` as a deprecated compatibility API for introductory declarations. Report `extensionTypeAugmentationHasRepresentation` when an augmentation writes representation syntax. This keeps the parser recovery explicit: the augmentation still gets a plain `namePart`, while the invalid representation is diagnosed instead of being modeled as the declaration's primary constructor. Synthesize recovery representation and primary constructor fragments only for the element model when an extension type has no introductory declaration. Migrate analyzer, analysis server, analyzer plugin, and linter clients to read extension type names and type parameters from `namePart`. Change-Id: I59dd957ac38f087c861b993caf246986dcdac713 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/505067 Reviewed-by: Johnni Winther <johnniwinther@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>