Go: рдкреНрд░рд╕реНрддрд╛рд╡: cmd/vet: рдкрд╢реБ рдЪрд┐рдХрд┐рддреНрд╕рдХ рдХреЛ рд╕рдордп рдЖрдиреЗ рдкрд░ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред рд╕рдордп рдкреНрд░рдХрд╛рд░ (рдпрд╛ рдкреНрд░рдХрд╛рд░ рдЗрд╕реЗ рдПрдореНрдмреЗрдб рдХрд░реЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдЪрд┐рддреНрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рджрд┐рд╕ре░ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: golang/go

рдЖрдк рдЧреЛ рдХреЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ ( go version )?

рдЧреЛ рд╕рдВрд╕реНрдХрд░рдг go1.9.2 linux/amd64

рдХреНрдпрд╛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рд╕рд╛рде рдкреБрди: рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ?

рд╣рд╛рдВ

рддреБрдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛?

package main

import "time"

type T struct {
    time.Time
}

var a map[T]string

func main() {
}

$ go vet a.go
$ [nothing reported]

рдЖрдкрдиреЗ рдХреНрдпрд╛ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХреА рдереА?

$ go vet a.go
$ time.Time is not a good map key type.

рд╕рдордп рдХреА рддрд░рд╣ред рд╕рдордп, рдХреБрдЫ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдорд╛рдирдЪрд┐рддреНрд░ рдХреБрдВрдЬреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдиреЗ рдХреНрдпрд╛ рджреЗрдЦрд╛?

рдХреБрдЫ рднреА рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛

FrozenDueToAge Proposal

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдкрд╢реБ рдЪрд┐рдХрд┐рддреНрд╕рдХ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдмрд╛рд░ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред

рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдп рд╣реИред рдорд╛рдирдЪрд┐рддреНрд░ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордп, рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реИрдз рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╢реЛрд░ рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ GitHub рдкрд░ рдХреБрдЫ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рддрдиреЗ рдкреНрд░рддрд┐рд╢рдд рд╕рдордп рд╣реИред рд╕рдордп-рдХреБрдВрдЬреА рдорд╛рдирдЪрд┐рддреНрд░ рдорд╛рдиреНрдп рд╣реИрдВред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдкрд╢реБ рдЪрд┐рдХрд┐рддреНрд╕рдХ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдмрд╛рд░ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред

рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдорд╛рдиреНрдп рд╣реИред рдорд╛рдирдЪрд┐рддреНрд░ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордп, рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡реИрдз рдХреЛрдб рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╢реЛрд░ рд╣реЛрдЧрд╛ред

рд▓реЗрдХрд┐рди рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ GitHub рдкрд░ рдХреБрдЫ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХрд┐рддрдиреЗ рдкреНрд░рддрд┐рд╢рдд рд╕рдордп рд╣реИред рд╕рдордп-рдХреБрдВрдЬреА рдорд╛рдирдЪрд┐рддреНрд░ рдорд╛рдиреНрдп рд╣реИрдВред

рдореИрдВрдиреЗ рдПрдХ рд▓рд┐рдВрдЯрд░ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ: https://github.com/m3db/build-tools/blob/master/linters/badtime/README.md

рдореИрдВ рдЗрд╕реЗ рдЕрднреА gometalinter рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЕрдм рд╡рд╣ рдкрд╢реБ рдЪрд┐рдХрд┐рддреНрд╕рдХ рдЧреЛ рдЯреЗрд╕реНрдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ, рдирдП рдЪреЗрдХ рдХреЗ рд▓рд┐рдП рдмрд╛рд░ рдФрд░ рднреА рдЕрдзрд┐рдХ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ _is_ рдХрднреА-рдХрднреА рд╕рдордп рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реЛрддрд╛ рд╣реИред рдорд╛рдирдЪрд┐рддреНрд░ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордп, рдкрд╢реБ рдЪрд┐рдХрд┐рддреНрд╕рдХ рдореЗрдВ рдЗрд╕реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдареАрдХ рдирд╣реАрдВ рд╣реИред

рдЖрдк рдЗрд╕реЗ рдореЗрдЧрд╛рдЪреЗрдХ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд▓рд┐рдВрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ @dominikh рд╕реЗ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕