Files
boring-lang/notes.txt
2021-05-30 10:02:58 -06:00

47 lines
707 B
Plaintext

# On types
Type Usage != Type Definition
type List[T] struct {
}
fn add[T: addable](a: T, b: T): T {
return a + b;
}
type usages:
List[Int64]
fn(int, int): List[Int64]
@dataclass
class TypeUsage:
result: Identifier # Result of useage - either is the type, or is the return value if it's a function
type_args: List[Type] # Generics
arguments: Optional[List[Type]] # Specified if it is a function, this is how you tell if it's a function
if / match return never if all blocks return never;
blocks propagate never except at the function level;
TODO:
* ~Float Literals~
* ~Block expression~
* ~Return keyword ~
* Structs
* Generics
* Enums
* Methods
* Arrays
* Strings
* Traits
* Async