blob: 3cfc546bdba83874713e0433eddc2c8f3b8d5724 [file] [log] [blame]
// Copyright (c) 2022, 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:kernel/ast.dart';
import '../source/source_library_builder.dart';
import 'library_builder.dart';
import 'named_type_builder.dart';
import 'nullability_builder.dart';
import 'type_builder.dart';
class OmittedTypeBuilder extends TypeBuilder {
const OmittedTypeBuilder();
@override
DartType build(LibraryBuilder library, TypeUse typeUse) {
throw new UnsupportedError('$runtimeType.build');
}
@override
DartType buildAliased(LibraryBuilder library, TypeUse typeUse) {
throw new UnsupportedError('$runtimeType.buildAliased');
}
@override
Supertype? buildMixedInType(LibraryBuilder library) {
throw new UnsupportedError('$runtimeType.buildMixedInType');
}
@override
Supertype? buildSupertype(LibraryBuilder library) {
throw new UnsupportedError('$runtimeType.buildSupertype');
}
@override
int? get charOffset => null;
@override
TypeBuilder clone(
List<NamedTypeBuilder> newTypes,
SourceLibraryBuilder contextLibrary,
TypeParameterScopeBuilder contextDeclaration) {
return this;
}
@override
String get debugName => 'OmittedTypeBuilder';
@override
Uri? get fileUri => null;
@override
bool get isVoidType => false;
@override
Object? get name => null;
@override
NullabilityBuilder get nullabilityBuilder =>
const NullabilityBuilder.omitted();
@override
StringBuffer printOn(StringBuffer buffer) => buffer;
@override
TypeBuilder withNullabilityBuilder(NullabilityBuilder nullabilityBuilder) {
return this;
}
}