Implement function reference constant building
KronicDeth opened this issue · 1 comments
KronicDeth commented
After fixing #544, this occurs
not yet implemented: build function reference constant for Some(value29) = Static(FunctionIdent { module: Ident<init SourceSpan { source_id: SourceId(4294967295), start: ByteIndex(0), end: ByteIndex(0) }>, name: Ident<return_from_export SourceSpan { source_id: SourceId(4294967295), start: ByteIndex(0), end: ByteIndex(0) }>, arity: 0 })', compiler/codegen/src/builder/ops/builders/call.rs:106:9
init.erl
-module(init).
-export([start/0]).
-import(erlang, [apply/2, display/1]).
start() ->
from_fun().
from_fun() ->
Fun = fun return_from_export/0,
Return = apply(Fun, []),
display(Return).
return_from_export() ->
from_fun.
KronicDeth commented
Affects the following files in OTP:
erts/preloaded/src/init.erl
lib/common_test/src/ct_config_xml.erl
lib/compiler/src/beam_clean.erl
lib/compiler/src/beam_ssa_funs.erl
lib/compiler/src/core_pp.erl
lib/compiler/src/sys_core_alias.erl
lib/compiler/src/sys_core_bsm.erl
lib/compiler/src/sys_core_inline.erl
lib/compiler/src/sys_core_prepare.erl
lib/compiler/src/v3_kernel_pp.erl
lib/debugger/src/dbg_iload.erl
lib/dialyzer/src/dialyzer_callgraph.erl
lib/dialyzer/src/dialyzer_dep.erl
lib/diameter/src/compiler/diameter_dict_scanner.erl
lib/diameter/src/info/diameter_dbg.erl
lib/diameter/src/info/diameter_info.erl
lib/diameter/src/transport/diameter_tcp.erl
lib/inets/src/inets_app/inets_trace.erl
lib/kernel/src/raw_file_io.erl
lib/mnesia/src/mnesia_text.erl
lib/mnesia/src/mnesia_log.erl
lib/stdlib/src/digraph_utils.erl
lib/stdlib/src/pool.erl
lib/syntax_tools/src/epp_dodger.erl
lib/syntax_tools/src/erl_syntax_lib.erl
lib/syntax_tools/src/merl.erl
lib/syntax_tools/src/prettypr.erl
lib/xmerl/src/xmerl_simple.erl
lib/xmerl/src/xmerl_xlate.erl
lib/xmerl/src/xmerl_xs.erl