~mna/snow unlisted

snow/pkg d---------
Merge branch 'wip-static-func-return'
pkg/semantic: statically check that fn body return in all branches
Merge branch 'wip-interfaces'
pkg/codegen: punt on the interface/tuple/ref fn fix for codegen, focus on semantics for now
pkg/codegen: kinda works, except in a tuple conversion struct is not by ref
pkg/semantic: fix nested assignment of non-mutable structs to interfaces
pkg/semantic: more tests around ref struct fns and interfaces deep in tuples
pkg/{semantic,codegen}: create test cases for interfaces with ref methods
pkg/semantic: fix interface satisfied by for ref methods
pkg/semantic: notes on how to address ref methods in interfaces
pkg/codegen: test interface code generation
pkg/codegen: start codegen for interfaces
pkg/semantic: test generic interfaces
pkg/semantic: test assignment and interface-satisfiability
pkg/semantic: test assign to interface and call via interface
pkg/semantic: type-check the interface declarations
pkg/semantic: print number of interfaces in file/struct, adjust expected test results
pkg/semantic: refactor and finish type-assign for interfaces
pkg/semantic: work on refactoring type-assign in prep for interaces
pkg/semantic: start translating and type-assigning interfaces
pkg/parser: validate that interface methods have no attribute nor body