• Russ Cox's avatar
    allow direct conversion between string and named []byte, []rune · 6e3e3809
    Russ Cox authored
    The allowed conversions before and after are:
            type Tstring string
            type Tbyte []byte
            type Trune []rune
    
            string <-> string  // ok
            string <-> []byte  // ok
            string <-> []rune // ok
            string <-> Tstring // ok
            string <-> Tbyte // was illegal, now ok
            string <-> Trune // was illegal, now ok
    
            Tstring <-> string  // ok
            Tstring <-> []byte  // ok
            Tstring <-> []rune // ok
            Tstring <-> Tstring // ok
            Tstring <-> Tbyte // was illegal, now ok
            Tstring <-> Trune // was illegal, now ok
    
    Update spec, compiler, tests.  Use in a few packages.
    
    We agreed on this a few months ago but never implemented it.
    
    Fixes #1707.
    
    R=golang-dev, gri, r
    CC=golang-dev
    https://golang.org/cl/5421057
    6e3e3809
subr.c 50.4 KB