dart-sdk/tests/language/string/escape4_test.dart
Jens Johansen fd4e41a7af [parser-ish] Better errors on invalid unicode escapes
https://github.com/dart-lang/sdk/issues/48542

Change-Id: Icbdcc939a93c737914091c00aaefa3c4efb2dde0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237364
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2022-03-17 13:57:45 +00:00

30 lines
1.1 KiB
Dart

// Copyright (c) 2019, 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.
// Test that newlines cannot be escaped in strings.
main() {
// Note: The newline inside a string literal doesn't play nice with the
// static error updater tool, so if you need to tweak the static error
// expectations in this test, you may need to do so manually.
print('Hello, World!\
// ^
// [cfe] Can't find ')' to match '('.
// ^
// [cfe] String starting with ' must end with '.
// ^
// [analyzer] SYNTACTIC_ERROR.INVALID_UNICODE_ESCAPE_STARTED
// [analyzer] SYNTACTIC_ERROR.UNTERMINATED_STRING_LITERAL
// [cfe] The string '\' can't stand alone.
');
// [error column 1, length 3]
// [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN
// [cfe] Expected ';' after this.
// [cfe] String starting with ' must end with '.
//^
// [analyzer] SYNTACTIC_ERROR.UNTERMINATED_STRING_LITERAL
}
// [error column 1, length 1]
// [analyzer] SYNTACTIC_ERROR.EXPECTED_TOKEN