blob: 7a202dfeebeec6390230e99eb38aee1e4d0c3050 [file] [log] [blame]
// Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/src/fine/lookup_name.dart';
import 'package:analyzer/src/fine/manifest_id.dart';
final class ExportCountMismatch extends ExportFailure {
final Uri fragmentUri;
final Uri exportedUri;
final int actualCount;
final int requiredCount;
ExportCountMismatch({
required this.fragmentUri,
required this.exportedUri,
required this.actualCount,
required this.requiredCount,
});
}
// TODO(scheglov): break down
sealed class ExportFailure extends RequirementFailure {}
final class ExportIdMismatch extends ExportFailure {
final Uri fragmentUri;
final Uri exportedUri;
final LookupName name;
final ManifestItemId actualId;
final ManifestItemId? expectedId;
ExportIdMismatch({
required this.fragmentUri,
required this.exportedUri,
required this.name,
required this.actualId,
required this.expectedId,
});
}
final class ExportLibraryMissing extends ExportFailure {
final Uri uri;
ExportLibraryMissing({required this.uri});
}
class InstanceMethodIdMismatch extends RequirementFailure {
final Uri libraryUri;
final LookupName interfaceName;
final LookupName methodName;
final ManifestItemId? expectedId;
final ManifestItemId? actualId;
InstanceMethodIdMismatch({
required this.libraryUri,
required this.interfaceName,
required this.methodName,
required this.expectedId,
required this.actualId,
});
}
class InterfaceConstructorIdMismatch extends RequirementFailure {
final Uri libraryUri;
final LookupName interfaceName;
final LookupName constructorName;
final ManifestItemId? expectedId;
final ManifestItemId? actualId;
InterfaceConstructorIdMismatch({
required this.libraryUri,
required this.interfaceName,
required this.constructorName,
required this.expectedId,
required this.actualId,
});
}
class LibraryMissing extends RequirementFailure {
final Uri uri;
LibraryMissing({required this.uri});
}
sealed class RequirementFailure {}
sealed class TopLevelFailure extends RequirementFailure {
final Uri libraryUri;
final LookupName name;
TopLevelFailure({required this.libraryUri, required this.name});
}
class TopLevelIdMismatch extends TopLevelFailure {
final ManifestItemId? expectedId;
final ManifestItemId? actualId;
TopLevelIdMismatch({
required super.libraryUri,
required super.name,
required this.expectedId,
required this.actualId,
});
}
class TopLevelNotInterface extends TopLevelFailure {
TopLevelNotInterface({required super.libraryUri, required super.name});
}