fix(gs/achilles): Get rid of universalization step
The step of "universalizing" function expressions was conflicting with top-level ascriptions for polymorphic function declarations: universalization generates universal type variables, and top-level polymorphic ascription *also* generates universal type variables, and the two were conflicting with each other when unifying. Let's just get rid of this now, and we can bring it back in a more principled manner once we do actual let-generalization (which there's still an ignored test case for) Change-Id: Idc08c8cb5ac92d1e6e1e63c9b8729176cab73f44 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2616 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
This commit is contained in:
parent
e2a3aea451
commit
e7033bd8b0
2 changed files with 67 additions and 30 deletions
|
|
@ -228,6 +228,13 @@ pub enum Decl<'a, T> {
|
|||
}
|
||||
|
||||
impl<'a, T> Decl<'a, T> {
|
||||
pub fn name(&self) -> &Ident<'a> {
|
||||
match self {
|
||||
Decl::Fun { name, .. } => name,
|
||||
Decl::Extern { name, .. } => name,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn type_(&self) -> Option<&T> {
|
||||
match self {
|
||||
Decl::Fun { type_, .. } => Some(type_),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue