114 lines
1.6 KiB
Go
114 lines
1.6 KiB
Go
//args: -Eexhaustivestruct
|
|
//config: linters-settings.exhaustivestruct.struct-patterns=*.Test1,*.Test3
|
|
package testdata
|
|
|
|
import "time"
|
|
|
|
type Test1 struct {
|
|
A string
|
|
B int
|
|
c bool // private field inside the same package are not ignored
|
|
D float64
|
|
E time.Time
|
|
}
|
|
|
|
var passTest1 = Test1{
|
|
A: "a",
|
|
B: 0,
|
|
c: false,
|
|
D: 1.0,
|
|
E: time.Now(),
|
|
}
|
|
|
|
var failTest1 = Test1{ // ERROR "B is missing in Test"
|
|
A: "a",
|
|
c: false,
|
|
D: 1.0,
|
|
E: time.Now(),
|
|
}
|
|
|
|
var failMultipleTest1 = Test1{ // ERROR "B, D are missing in Test"
|
|
A: "a",
|
|
c: false,
|
|
E: time.Now(),
|
|
}
|
|
|
|
var failPrivateTest1 = Test1{ // ERROR "c is missing in Test"
|
|
A: "a",
|
|
B: 0,
|
|
D: 1.0,
|
|
E: time.Now(),
|
|
}
|
|
|
|
type Test2 struct {
|
|
A string
|
|
B int
|
|
c bool // private field inside the same package are not ignored
|
|
D float64
|
|
E time.Time
|
|
}
|
|
|
|
var passTest2 = Test1{
|
|
A: "a",
|
|
B: 0,
|
|
c: false,
|
|
D: 1.0,
|
|
E: time.Now(),
|
|
}
|
|
|
|
var failTest2 = Test2{
|
|
A: "a",
|
|
c: false,
|
|
D: 1.0,
|
|
E: time.Now(),
|
|
}
|
|
|
|
var failMultipleTest2 = Test2{
|
|
A: "a",
|
|
c: false,
|
|
E: time.Now(),
|
|
}
|
|
|
|
var failPrivateTest2 = Test2{
|
|
A: "a",
|
|
B: 0,
|
|
D: 1.0,
|
|
E: time.Now(),
|
|
}
|
|
|
|
type Test3 struct {
|
|
A string
|
|
B int
|
|
c bool // private field inside the same package are not ignored
|
|
D float64
|
|
E time.Time
|
|
}
|
|
|
|
var passTest3 = Test3{
|
|
A: "a",
|
|
B: 0,
|
|
c: false,
|
|
D: 1.0,
|
|
E: time.Now(),
|
|
}
|
|
|
|
var failTest3 = Test3{ // ERROR "B is missing in Test"
|
|
A: "a",
|
|
c: false,
|
|
D: 1.0,
|
|
E: time.Now(),
|
|
}
|
|
|
|
var failMultipleTest3 = Test3{ // ERROR "B, D are missing in Test"
|
|
A: "a",
|
|
c: false,
|
|
E: time.Now(),
|
|
}
|
|
|
|
var failPrivateTest3 = Test3{ // ERROR "c is missing in Test"
|
|
A: "a",
|
|
B: 0,
|
|
D: 1.0,
|
|
E: time.Now(),
|
|
}
|