| // 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; |
| } |