# Modules were introduced in Go 1.11, but for various reasons users may
# decide to declare a (much!) older go version in their go.mod file.
# Modules with very old versions should not be rejected, and should have
# the same module-graph semantics as in Go 1.11.

cp go.mod go.mod.orig
go mod tidy
cmp go.mod go.mod.orig

-- go.mod --
module example.com/legacy/go1

go 1.0

require golang.org/x/text v0.3.0
-- main.go --
package main

import _ "golang.org/x/text/language"

func main() {}
