mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 10:33:28 +00:00
Track location for invalid types
Change-Id: I6c500f977498b5e54e581273bf3a3b171fc2e61b Reviewed-on: https://dart-review.googlesource.com/28720 Reviewed-by: Aske Simon Christensen <askesc@google.com> Commit-Queue: Peter von der Ahé <ahe@google.com>
This commit is contained in:
parent
a11d7a1643
commit
40d80969d7
|
@ -4,7 +4,7 @@
|
|||
|
||||
library fasta.invalid_type_builder;
|
||||
|
||||
import '../fasta_codes.dart' show Message;
|
||||
import '../fasta_codes.dart' show LocatedMessage;
|
||||
|
||||
import 'builder.dart' show TypeBuilder, TypeDeclarationBuilder;
|
||||
|
||||
|
@ -13,7 +13,7 @@ abstract class InvalidTypeBuilder<T extends TypeBuilder, R>
|
|||
InvalidTypeBuilder(String name, int charOffset, [Uri fileUri])
|
||||
: super(null, 0, name, null, charOffset, fileUri);
|
||||
|
||||
Message get message;
|
||||
LocatedMessage get message;
|
||||
|
||||
String get debugName => "InvalidTypeBuilder";
|
||||
}
|
||||
|
|
|
@ -1012,9 +1012,8 @@ class TypeDeclarationAccessor extends ReadOnlyAccessor {
|
|||
int offset = offsetForToken(token);
|
||||
if (declaration is KernelInvalidTypeBuilder) {
|
||||
KernelInvalidTypeBuilder declaration = this.declaration;
|
||||
helper.library.addWarning(
|
||||
declaration.message, declaration.charOffset, declaration.fileUri);
|
||||
helper.addWarning(declaration.message, offset, token.length);
|
||||
helper.addWarning(
|
||||
declaration.message.messageObject, offset, token.length);
|
||||
super.expression = new Throw(
|
||||
new StringLiteral(declaration.message.message)
|
||||
..fileOffset = offsetForToken(token))
|
||||
|
|
|
@ -6,7 +6,7 @@ library fasta.kernel_invalid_type_builder;
|
|||
|
||||
import 'package:kernel/ast.dart' show DartType, InvalidType;
|
||||
|
||||
import '../fasta_codes.dart' show Message, templateTypeNotFound;
|
||||
import '../fasta_codes.dart' show LocatedMessage, Message, templateTypeNotFound;
|
||||
|
||||
import 'kernel_builder.dart'
|
||||
show InvalidTypeBuilder, KernelTypeBuilder, LibraryBuilder;
|
||||
|
@ -14,11 +14,12 @@ import 'kernel_builder.dart'
|
|||
class KernelInvalidTypeBuilder
|
||||
extends InvalidTypeBuilder<KernelTypeBuilder, DartType> {
|
||||
@override
|
||||
final Message message;
|
||||
final LocatedMessage message;
|
||||
|
||||
KernelInvalidTypeBuilder(String name, int charOffset, Uri fileUri,
|
||||
[Message message])
|
||||
: message = message ?? templateTypeNotFound.withArguments(name),
|
||||
: message = (message ?? templateTypeNotFound.withArguments(name))
|
||||
.withLocation(fileUri, charOffset),
|
||||
super(name, charOffset, fileUri);
|
||||
|
||||
DartType buildType(
|
||||
|
@ -29,7 +30,7 @@ class KernelInvalidTypeBuilder
|
|||
/// [Arguments] have already been built.
|
||||
DartType buildTypesWithBuiltArguments(
|
||||
LibraryBuilder library, List<DartType> arguments) {
|
||||
library.addWarning(message, charOffset, fileUri);
|
||||
library.addWarning(message.messageObject, message.charOffset, message.uri);
|
||||
return const InvalidType();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -670,7 +670,6 @@ class SourceLoader<L> extends Loader<L> {
|
|||
message.code == fasta_codes.codeConstructorNotFound ||
|
||||
message.code == fasta_codes.codeSuperclassHasNoDefaultConstructor ||
|
||||
message.code == fasta_codes.codeTypeArgumentsOnTypeVariable ||
|
||||
message.code == fasta_codes.codeTypeNotFound ||
|
||||
message.code == fasta_codes.codeUnspecified)) {
|
||||
// TODO(ahe): All warnings should have a charOffset, but currently, some
|
||||
// warnings lack them.
|
||||
|
|
Loading…
Reference in a new issue