Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Captured function not typechecked #140

Open
jfecher opened this issue Oct 8, 2022 · 0 comments
Open

Captured function not typechecked #140

jfecher opened this issue Oct 8, 2022 · 0 comments
Labels
crash An internal compiler error or (compiler) runtime crash panic A panic within the compiler

Comments

@jfecher
Copy link
Owner

jfecher commented Oct 8, 2022

if true then
    f () = print "hi"
    g () = f ()
    g ()

Fails with

thread 'main' panicked at 'internal error: entered unreachable code', src/types/mod.rs:227:48
stack backtrace:
   0: rust_begin_unwind
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/std/src/panicking.rs:556:5
   1: core::panicking::panic_fmt
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/panicking.rs:142:14
   2: core::panicking::panic
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/panicking.rs:48:5
   3: ante::types::GeneralizedType::into_monotype
             at ./src/types/mod.rs:227:48
   4: ante::hir::monomorphisation::Context::pack_closure_environment::{{closure}}
             at ./src/hir/monomorphisation.rs:1175:27
   5: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/ops/function.rs:309:13
   6: core::option::Option<T>::map
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/option.rs:929:29
   7: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/iter/adapters/map.rs:103:9
   8: <alloc::collections::vec_deque::VecDeque<T,A> as alloc::collections::vec_deque::spec_extend::SpecExtend<T,I>>::spec_extend
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/alloc/src/collections/vec_deque/spec_extend.rs:23:35
   9: <alloc::collections::vec_deque::VecDeque<T,A> as core::iter::traits::collect::Extend<T>>::extend
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/alloc/src/collections/vec_deque/mod.rs:2991:9
  10: <alloc::collections::vec_deque::VecDeque<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/alloc/src/collections/vec_deque/mod.rs:2951:9
  11: core::iter::traits::iterator::Iterator::collect
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/iter/traits/iterator.rs:1836:9
  12: ante::hir::monomorphisation::Context::pack_closure_environment
             at ./src/hir/monomorphisation.rs:1172:19
  13: ante::hir::monomorphisation::Context::monomorphise_lambda
             at ./src/hir/monomorphisation.rs:1126:24
  14: ante::hir::monomorphisation::Context::monomorphise
             at ./src/hir/monomorphisation.rs:114:31
  15: ante::hir::monomorphisation::Context::monomorphise_nonlocal_definition
             at ./src/hir/monomorphisation.rs:899:21
  16: ante::hir::monomorphisation::Context::monomorphise_definition_id
             at ./src/hir/monomorphisation.rs:775:27
  17: ante::hir::monomorphisation::Context::monomorphise_variable
             at ./src/hir/monomorphisation.rs:635:26
  18: ante::hir::monomorphisation::Context::monomorphise
             at ./src/hir/monomorphisation.rs:113:35
  19: ante::hir::monomorphisation::Context::monomorphise_call
             at ./src/hir/monomorphisation.rs:1301:32
  20: ante::hir::monomorphisation::Context::monomorphise
             at ./src/hir/monomorphisation.rs:115:35
  21: ante::hir::monomorphisation::Context::monomorphise_sequence::{{closure}}
             at ./src/hir/monomorphisation.rs:1395:65
  22: core::iter::adapters::map::map_fold::{{closure}}
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/iter/adapters/map.rs:84:28
  23: core::iter::traits::iterator::Iterator::fold
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/iter/traits/iterator.rs:2414:21
  24: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/iter/adapters/map.rs:124:9
  25: core::iter::traits::iterator::Iterator::for_each
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/iter/traits/iterator.rs:831:9
  26: <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/alloc/src/vec/spec_extend.rs:40:17
  27: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/alloc/src/vec/spec_from_iter_nested.rs:62:9
  28: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/alloc/src/vec/spec_from_iter.rs:33:9
  29: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/alloc/src/vec/mod.rs:2649:9
  30: core::iter::traits::iterator::Iterator::collect
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/iter/traits/iterator.rs:1836:9
  31: ante::util::fmap
             at ./src/util/mod.rs:16:5
  32: ante::hir::monomorphisation::Context::monomorphise_sequence
             at ./src/hir/monomorphisation.rs:1395:26
  33: ante::hir::monomorphisation::Context::monomorphise
             at ./src/hir/monomorphisation.rs:125:35
  34: ante::hir::monomorphisation::Context::monomorphise_if
             at ./src/hir/monomorphisation.rs:1383:29
  35: ante::hir::monomorphisation::Context::monomorphise
             at ./src/hir/monomorphisation.rs:117:24
  36: ante::hir::monomorphisation::monomorphise
             at ./src/hir/monomorphisation.rs:30:5
  37: ante::compile
             at ./src/main.rs:156:15
  38: ante::main
             at ./src/main.rs:100:9
  39: core::ops::function::FnOnce::call_once
             at /rustc/e7119a0300b87a3d670408ee8e847c6821b3ae80/library/core/src/ops/function.rs:251:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
exit 101

@jfecher jfecher added panic A panic within the compiler crash An internal compiler error or (compiler) runtime crash labels Oct 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
crash An internal compiler error or (compiler) runtime crash panic A panic within the compiler
Projects
None yet
Development

No branches or pull requests

1 participant