Data Flow Safety
- Q632: How does EK9 ensure variables are used only after they are defined?
- Q633: How does EK9 track variable initialization across control flow branches?
- Q634: Why must I use a guard before accessing a returned value?
- Q635: What operations are forbidden inside a pure method?
- Q636: How do I chain multiple guards for safe access?
- Q687: How should Result values be accessed safely using guards?
- Q688: How does EK9 enforce variable initialization order?
- Q692: How does EK9 ensure class fields are properly initialized?
- Q789: Why does EK9 reject unused variables?
- Q795: What is a logical tautology and why does EK9 reject it?
- Q796: Why does EK9 reject comparisons against variables with known constant values?
- Q1240: Write me a pure function categorise that takes an Integer score and returns a String category ('high', 'medium' or 'low'), proving the return variable is initialised on every branch.
- Q1249: Write me a pure function classifyTemperature that takes a Float celsius and returns a String label, declaring the return variable WITHOUT a default and proving the compiler that every branch of the if/else chain initialises it.
- Q1371: What is EK9's Symbolic (Contract) analysis and how do I read the Flow pane's Symbolic mode?
- Q2003: Does ':=?' initialise a variable declared with no value, even when the value it assigns is unset?