mirror of
https://github.com/Crocmagnon/fatcontext.git
synced 2024-09-20 02:57:42 +02:00
33 lines
725 B
Go
33 lines
725 B
Go
|
package src
|
||
|
|
||
|
import "context"
|
||
|
|
||
|
func example() {
|
||
|
ctx := context.Background()
|
||
|
|
||
|
for i := 0; i < 10; i++ {
|
||
|
ctx := context.WithValue(ctx, "key", i)
|
||
|
ctx = context.WithValue(ctx, "other", "val")
|
||
|
}
|
||
|
|
||
|
for i := 0; i < 10; i++ {
|
||
|
ctx = context.WithValue(ctx, "key", i) // want "context not shadowed in loop"
|
||
|
ctx = context.WithValue(ctx, "other", "val")
|
||
|
}
|
||
|
|
||
|
for item := range []string{"one", "two", "three"} {
|
||
|
ctx = wrapContext(ctx) // want "context not shadowed in loop"
|
||
|
ctx := context.WithValue(ctx, "key", item)
|
||
|
ctx = wrapContext(ctx)
|
||
|
}
|
||
|
|
||
|
for {
|
||
|
ctx = wrapContext(ctx) // want "context not shadowed in loop"
|
||
|
break
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func wrapContext(ctx context.Context) context.Context {
|
||
|
return context.WithoutCancel(ctx)
|
||
|
}
|