in util-core/src/main/scala/com/twitter/util/Local.scala [294:329]
def get(k: Key): Option[_] =
if (k eq k1) v1
else if (k eq k2) v2
else if (k eq k3) v3
else if (k eq k4) v4
else None
def remove(k: Key): Context =
if (k eq k1) new Context3(resourceTracker, fiber, k2, v2, k3, v3, k4, v4)
else if (k eq k2) new Context3(resourceTracker, fiber, k1, v1, k3, v3, k4, v4)
else if (k eq k3) new Context3(resourceTracker, fiber, k1, v1, k2, v2, k4, v4)
else if (k eq k4) new Context3(resourceTracker, fiber, k1, v1, k2, v2, k3, v3)
else this
def set(k: Key, v: Some[_]): Context =
if (k eq k1) new Context4(resourceTracker, fiber, k1, v, k2, v2, k3, v3, k4, v4)
else if (k eq k2) new Context4(resourceTracker, fiber, k1, v1, k2, v, k3, v3, k4, v4)
else if (k eq k3) new Context4(resourceTracker, fiber, k1, v1, k2, v2, k3, v, k4, v4)
else if (k eq k4) new Context4(resourceTracker, fiber, k1, v1, k2, v2, k3, v3, k4, v)
else new Context5(resourceTracker, fiber, k1, v1, k2, v2, k3, v3, k4, v4, k, v)
}
private final class Context5(
resourceTracker: Option[ResourceTracker],
fiber: Fiber,
k1: Key,
v1: Some[_],
k2: Key,
v2: Some[_],
k3: Key,
v3: Some[_],
k4: Key,
v4: Some[_],
k5: Key,
v5: Some[_])
extends Context(resourceTracker, fiber) {