1. 02 Oct, 2016 2 commits
    • Adam Langley's avatar
      crypto/x509: fix name constraints handling. · e4dafa32
      Adam Langley authored
      This change brings the behaviour of X.509 name constraints into line
      with NSS[1]. In this area, the behavior specified by the RFC and by NIST
      differs and this code follows the NIST behaviour.
      
      [1] https://github.com/servo/nss/blob/master/lib/certdb/genname.c
      
      Fixes #16347, fixes #14833.
      
      Change-Id: I5acd1970041291c2e3936f5b1fd36f2a0338e613
      Reviewed-on: https://go-review.googlesource.com/30155Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
      e4dafa32
    • Emmanuel Odeke's avatar
      cmd/compile: improve error message for wrong number of arguments to return · 2d573eee
      Emmanuel Odeke authored
      Fixes #4215.
      Fixes #6750.
      
      Improves the error message for wrong number of arguments by comparing
      the signature of the return call site arguments, versus the function's
      expected return arguments.
      
      In this CL, the signature representation of:
      + ideal numbers(TIDEAL) ie float*, complex*, rune, int is
      "number" instead of "untyped number".
      + idealstring is "string" instead of "untyped string".
      + idealbool is "bool" instead of "untyped bool".
      
      However, the representation of other types remains as the compiler
      would produce.
      
      * Example 1(in the error messages, if all lines were printed):
      $ cat main.go && go run main.go
      package main
      
      func foo() (int, int) {
        return 2.3
      }
      
      func foo2() {
        return int(2), 2
      }
      
      func foo3(v int) (a, b, c, d int) {
        if v >= 5 {
          return 1
        }
        return 2, 3
      }
      
      func foo4(name string) (string, int) {
        switch name {
        case "cow":
          return "moo"
        case "dog":
          return "dog", 10, true
        case "fish":
          return ""
        default:
          return "lizard", 10
        }
      }
      
      type S int
      type T string
      type U float64
      
      func foo5() (S, T, U) {
        if false {
          return ""
        } else {
          ptr := new(T)
          return ptr
        }
        return new(S), 12.34, 1 + 0i, 'r', true
      }
      
      func foo6() (T, string) {
        return "T"
      }
      
      ./issue4215.go:4: not enough arguments to return, got (number) want (int, int)
      ./issue4215.go:8: too many arguments to return, got (int, number) want ()
      ./issue4215.go:13: not enough arguments to return, got (number) want (int, int, int, int)
      ./issue4215.go:15: not enough arguments to return, got (number, number) want (int, int, int, int)
      ./issue4215.go:21: not enough arguments to return, got (string) want (string, int)
      ./issue4215.go:23: too many arguments to return, got (string, number, bool) want (string, int)
      ./issue4215.go:25: not enough arguments to return, got (string) want (string, int)
      ./issue4215.go:37: not enough arguments to return, got (string) want (S, T, U)
      ./issue4215.go:40: not enough arguments to return, got (*T) want (S, T, U)
      ./issue4215.go:42: too many arguments to return, got (*S, number, number, number, bool) want (S, T, U)
      ./issue4215.go:46: not enough arguments to return, got (string) want (T, string)
      ./issue4215.go:46: too many errors
      
      * Example 2:
      $ cat 6750.go && go run 6750.go
      package main
      
      import "fmt"
      
      func printmany(nums ...int) {
        for i, n := range nums {
          fmt.Printf("%d: %d\n", i, n)
        }
        fmt.Printf("\n")
      }
      
      func main() {
        printmany(1, 2, 3)
        printmany([]int{1, 2, 3}...)
        printmany(1, "abc", []int{2, 3}...)
      }
      ./issue6750.go:15: too many arguments in call to printmany, got (number, string, []int) want (...int)
      
      Change-Id: I6fdce78553ae81770840070e2c975d3e3c83d5d8
      Reviewed-on: https://go-review.googlesource.com/25156
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: 's avatarKeith Randall <khr@golang.org>
      2d573eee
  2. 01 Oct, 2016 7 commits
  3. 30 Sep, 2016 14 commits
  4. 29 Sep, 2016 17 commits