blob: 025845ea3fd282a837a95e5e6cbb507ab91c32e5 [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:test/expect.dart';
import 'error_code_info.dart';
/// Check that the file 'messages.yaml' has corresponding parameters count
/// between the errors 'problemMessage'/'correctionMessage' and 'comment'.
void main() {
var classValues = analyzerMessages.values;
for (var classValue in classValues) {
for (var errorEntry in classValue.entries) {
var error = errorEntry.value;
if (_getMessagesParameters(error) !=
_getCommentParameters(error.comment ?? '')) {
fail(
"Parameters don't match between the problemMessage and comment in ${errorEntry.key}",
);
}
}
}
}
int _getCommentParameters(String message) {
var i = 0;
while (message.contains('\n$i: ')) {
i++;
}
return i;
}
int _getMessagesParameters(ErrorCodeInfo info) {
var i = 0;
while (info.problemMessage.contains('{$i}')) {
i++;
}
while (info.correctionMessage?.contains('{$i}') ?? false) {
i++;
}
return i;
}