| # Test that dependencies can use Go language features newer than the |
| # Go version specified by the main module. |
| |
| env GO111MODULE=on |
| |
| go build |
| |
| -- go.mod -- |
| module m |
| go 1.12 |
| require ( |
| sub.1 v1.0.0 |
| ) |
| replace ( |
| sub.1 => ./sub |
| ) |
| |
| -- x.go -- |
| package x |
| |
| import "sub.1" |
| |
| func F() { sub.F(0, 0) } |
| |
| var A sub.Alias |
| var D sub.Defined |
| |
| -- sub/go.mod -- |
| module m |
| go 1.14 |
| |
| -- sub/sub.go -- |
| package sub |
| |
| // signed shift counts added in Go 1.13 |
| func F(l, r int) int { return l << r } |
| |
| type m1 interface { M() } |
| type m2 interface { M() } |
| |
| // overlapping interfaces added in Go 1.14 |
| type Alias = interface { m1; m2; M() } |
| type Defined interface { m1; m2; M() } |