modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue9036.go (about)

     1  // errorcheck
     2  
     3  // Copyright 2015 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  // Expects to see error messages on 'p' exponents.
     8  
     9  package main
    10  
    11  import "fmt"
    12  
    13  const (
    14  	x1 = 1.1    // float
    15  	x2 = 1e10   // float
    16  	x3 = 0x1e10 // integer (e is a hex digit)
    17  )
    18  
    19  // 'p' exponents are invalid - the 'p' is not considered
    20  // part of a floating-point number, but introduces a new
    21  // (unexpected) name.
    22  //
    23  // Error recovery is not ideal and we use a new declaration
    24  // each time for the parser to recover.
    25  
    26  const x4 = 0x1p10 // ERROR "unexpected p10"
    27  const x5 = 1p10   // ERROR "unexpected p10"
    28  const x6 = 0p0    // ERROR "unexpected p0"
    29  
    30  func main() {
    31  	fmt.Printf("%g %T\n", x1, x1)
    32  	fmt.Printf("%g %T\n", x2, x2)
    33  	fmt.Printf("%g %T\n", x3, x3)
    34  	fmt.Printf("%g %T\n", x4, x4)
    35  	fmt.Printf("%g %T\n", x5, x5)
    36  	fmt.Printf("%g %T\n", x6, x6)
    37  }