# 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() }