dillon1000/react

Commit

[typer] Be more conservative with function type inference

It's not safe to infer types of arguments and return values because Javascript 
is so polymorphic. Instead just infer the type of the callee for non methods. 

Interestingly, even this is not conservative enough for JavaScript because Proxy 
can also be callable. But I think for our use cases we will treat Proxy and 
Functions similarly (they're all just objects) so it's ok.
Browse files
Changed paths27 files
First-parent comparison
M compiler/forget/src/HIR/HIR.ts ModifiedM compiler/forget/src/HIR/InferTypes.ts ModifiedM compiler/forget/src/__tests__/fixtures/hir/_bug_conditional-break-labeled.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/call.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/component.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/conditional-break.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/conditional-on-mutable.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/dependencies-outputs.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/dependencies.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/extend-scopes-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/inverted-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/mutable-lifetime-loops.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/overlapping-scopes-interleaved-by-terminal.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/overlapping-scopes-interleaved.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/overlapping-scopes-shadowed.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/overlapping-scopes-shadowing-within-block.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/overlapping-scopes-while.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/overlapping-scopes-within-block.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/reactive-scope-grouping.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/reactive-scopes-if.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/reactive-scopes.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/reassignment-conditional.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/reassignment-separate-scopes.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/reassignment.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/switch-non-final-default.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/switch.expect.md ModifiedM compiler/forget/src/__tests__/fixtures/hir/type-test-return-type-inference.expect.md Modified
Patch

Files changed

Rendering syntax-highlighted changes…