Slide 9 de 37

Limites, comprovados em tempo de compilação

proc main(): void {
	v := ["a", "b", "c"]

	last := len(v) - 1
	if v bounds last {
		echo v[last]                 // tudo bem — a guarda cobre isso
	}
}
Uma passagem dedicada e sensível ao fluxo comprova que todo índice e slice está dentro dos limites antes mesmo do programa rodar. Um índice literal dentro de um tamanho conhecido compila sem mais nada; um índice calculado precisa estar sob uma guarda que a passagem saiba ler, como `if v bounds i { v[i] }` — açúcar sintático para `i >= 0 && i < len(v)`. Tudo que a passagem não conseguir provar seguro é um erro de compilação, não um panic em tempo de execução — `echo v[len(v) - 1]` sozinho já é rejeitado de cara, índice calculado e tudo. Este mesmo servidor se apoia nisso: o número do slide vindo da URL é verificado com exatamente essa guarda antes de indexar a lista de slides.