Legacy. Deprecate LibraryElement.toLegacyElementIfOptOut

Change-Id: I2dceca5c2f0a5771a8f6aff79db3e32a7fa8993c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/349984
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov 2024-02-05 20:55:49 +00:00 committed by Commit Queue
parent e933cf570d
commit 648e43e34e
6 changed files with 9 additions and 19 deletions

View file

@ -1,5 +1,6 @@
## 6.5.0-dev
* Deprecated `LibraryElement.toLegacyTypeIfOptOut`.
* Deprecated `LibraryElement.toLegacyElementIfOptOut`.
## 6.4.1
* Patch for crash in ffi_verifier.

View file

@ -1875,6 +1875,7 @@ abstract class LibraryElement
/// If a legacy library, returns the legacy view on the [element].
///
/// Otherwise, return the original element.
@Deprecated('Only non-nullable by default mode is supported')
T toLegacyElementIfOptOut<T extends Element>(T element);
/// If a legacy library, return the legacy version of the [type].

View file

@ -4516,10 +4516,10 @@ class LibraryElementImpl extends LibraryOrAugmentationElementImpl
);
}
@Deprecated('Only non-nullable by default mode is supported')
@override
T toLegacyElementIfOptOut<T extends Element>(T element) {
if (isNonNullableByDefault) return element;
return Member.legacy(element) as T;
return element;
}
@Deprecated('Only non-nullable by default mode is supported')

View file

@ -9,7 +9,6 @@ import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/error/error.dart';
import 'package:analyzer/error/listener.dart';
import 'package:analyzer/src/dart/analysis/session.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/element/extensions.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/dart/element/type_algebra.dart';
@ -18,7 +17,6 @@ import 'package:analyzer/src/diagnostic/diagnostic_factory.dart';
import 'package:analyzer/src/error/codes.dart';
class CorrectOverrideHelper {
final LibraryElementImpl _library;
final TypeSystemImpl _typeSystem;
final ExecutableElement _thisMember;
@ -27,10 +25,9 @@ class CorrectOverrideHelper {
final DiagnosticFactory _diagnosticFactory = DiagnosticFactory();
CorrectOverrideHelper({
required LibraryElementImpl library,
required TypeSystemImpl typeSystem,
required ExecutableElement thisMember,
}) : _library = library,
_typeSystem = library.typeSystem,
}) : _typeSystem = typeSystem,
_thisMember = thisMember {
_computeThisTypeForSubtype();
}
@ -39,8 +36,6 @@ class CorrectOverrideHelper {
bool isCorrectOverrideOf({
required ExecutableElement superMember,
}) {
superMember = _library.toLegacyElementIfOptOut(superMember);
var superType = superMember.type;
return _typeSystem.isSubtypeOf(_thisTypeForSubtype!, superType);
}

View file

@ -319,9 +319,8 @@ class _ClassVerifier {
// diagnostic should be reported on the name of the mixin defining the
// method. In other cases, it should be reported on the name of the
// overriding method. The classNameNode is always wrong.
concreteElement = library.toLegacyElementIfOptOut(concreteElement);
CorrectOverrideHelper(
library: library,
typeSystem: typeSystem,
thisMember: concreteElement,
).verify(
superMember: interfaceElement,
@ -355,7 +354,7 @@ class _ClassVerifier {
var name = Name(libraryUri, member.name);
var correctOverrideHelper = CorrectOverrideHelper(
library: library,
typeSystem: typeSystem,
thisMember: member,
);

View file

@ -4057,7 +4057,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
if (mixinMember != null) {
var isCorrect = CorrectOverrideHelper(
library: _currentLibrary,
typeSystem: typeSystem,
thisMember: superMember,
).isCorrectOverrideOf(
superMember: mixinMember,
@ -4239,9 +4239,6 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
final superElement = superType.element;
// try to find default generative super constructor
var superUnnamedConstructor = superElement.unnamedConstructor;
superUnnamedConstructor = superUnnamedConstructor != null
? _currentLibrary.toLegacyElementIfOptOut(superUnnamedConstructor)
: superUnnamedConstructor;
if (superUnnamedConstructor != null) {
if (superUnnamedConstructor.isFactory) {
errorReporter.reportErrorForElement(
@ -5073,9 +5070,6 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
}
var superUnnamedConstructor = superElement.unnamedConstructor;
superUnnamedConstructor = superUnnamedConstructor != null
? _currentLibrary.toLegacyElementIfOptOut(superUnnamedConstructor)
: superUnnamedConstructor;
if (superUnnamedConstructor == null) {
errorReporter.atNode(
constructor.returnType,