go/test/char_lit1.go
Cuong Manh Le 9e6b1fcd0a cmd/compile: do not report error for invalid constant
Invalid constant was already reported by noder, so don't re-check in
typecheck, which lead to compiler crashing.

Updates #43311

Change-Id: I48e2f540601cef725c1ff628c066ed15d848e771
Reviewed-on: https://go-review.googlesource.com/c/go/+/298713
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2021-03-05 18:46:43 +00:00

28 lines
822 B
Go

// errorcheck -d=panic
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Verify that illegal character literals are detected.
// Does not compile.
package main
const (
// check that surrogate pair elements are invalid
// (d800-dbff, dc00-dfff).
_ = '\ud7ff' // ok
_ = '\ud800' // ERROR "Unicode|unicode"
_ = "\U0000D999" // ERROR "Unicode|unicode"
_ = '\udc01' // ERROR "Unicode|unicode"
_ = '\U0000dddd' // ERROR "Unicode|unicode"
_ = '\udfff' // ERROR "Unicode|unicode"
_ = '\ue000' // ok
_ = '\U0010ffff' // ok
_ = '\U00110000' // ERROR "Unicode|unicode"
_ = "abc\U0010ffffdef" // ok
_ = "abc\U00110000def" // ERROR "Unicode|unicode"
_ = '\Uffffffff' // ERROR "Unicode|unicode"
)