diff --git a/testData/org/elixir_lang/beam/decompiler/OTP20/Elixir.Kernel.beam b/testData/org/elixir_lang/beam/decompiler/OTP20/Elixir.Kernel.beam new file mode 100644 index 000000000..a41fc11f9 Binary files /dev/null and b/testData/org/elixir_lang/beam/decompiler/OTP20/Elixir.Kernel.beam differ diff --git a/testData/org/elixir_lang/beam/decompiler/OTP20/Elixir.Kernel.ex b/testData/org/elixir_lang/beam/decompiler/OTP20/Elixir.Kernel.ex new file mode 100644 index 000000000..f2f998e38 --- /dev/null +++ b/testData/org/elixir_lang/beam/decompiler/OTP20/Elixir.Kernel.ex @@ -0,0 +1,571 @@ +# Source code recreated from a .beam file by IntelliJ Elixir +defmodule Kernel do + + # Macros + + defmacro !(p0) do + # body not decompiled + end + + defmacro left && right do + # body not decompiled + end + + defmacro left .. right do + # body not decompiled + end + + defmacro left <> right do + # body not decompiled + end + + defmacro @(p0) do + # body not decompiled + end + + defmacro alias!(p0) do + # body not decompiled + end + + defmacro left and right do + # body not decompiled + end + + defmacro binding() do + # body not decompiled + end + + defmacro binding(p0) do + # body not decompiled + end + + defmacro def(p0) do + # body not decompiled + end + + defmacro def(p0, p1) do + # body not decompiled + end + + defmacro defdelegate(p0, p1) do + # body not decompiled + end + + defmacro defexception(p0) do + # body not decompiled + end + + defmacro defimpl(p0, p1) do + # body not decompiled + end + + defmacro defimpl(p0, p1, p2) do + # body not decompiled + end + + defmacro defmacro(p0) do + # body not decompiled + end + + defmacro defmacro(p0, p1) do + # body not decompiled + end + + defmacro defmacrop(p0) do + # body not decompiled + end + + defmacro defmacrop(p0, p1) do + # body not decompiled + end + + defmacro defmodule(p0, p1) do + # body not decompiled + end + + defmacro defoverridable(p0) do + # body not decompiled + end + + defmacro defp(p0) do + # body not decompiled + end + + defmacro defp(p0, p1) do + # body not decompiled + end + + defmacro defprotocol(p0, p1) do + # body not decompiled + end + + defmacro defstruct(p0) do + # body not decompiled + end + + defmacro destructure(p0, p1) do + # body not decompiled + end + + defmacro get_and_update_in(p0, p1) do + # body not decompiled + end + + defmacro if(p0, p1) do + # body not decompiled + end + + defmacro left in right do + # body not decompiled + end + + defmacro is_nil(p0) do + # body not decompiled + end + + defmacro match?(p0, p1) do + # body not decompiled + end + + defmacro left or right do + # body not decompiled + end + + defmacro pop_in(p0) do + # body not decompiled + end + + defmacro put_in(p0, p1) do + # body not decompiled + end + + defmacro raise(p0) do + # body not decompiled + end + + defmacro raise(p0, p1) do + # body not decompiled + end + + defmacro reraise(p0, p1) do + # body not decompiled + end + + defmacro reraise(p0, p1, p2) do + # body not decompiled + end + + defmacro sigil_C(p0, p1) do + # body not decompiled + end + + defmacro sigil_D(p0, p1) do + # body not decompiled + end + + defmacro sigil_N(p0, p1) do + # body not decompiled + end + + defmacro sigil_R(p0, p1) do + # body not decompiled + end + + defmacro sigil_S(p0, p1) do + # body not decompiled + end + + defmacro sigil_T(p0, p1) do + # body not decompiled + end + + defmacro sigil_W(p0, p1) do + # body not decompiled + end + + defmacro sigil_c(p0, p1) do + # body not decompiled + end + + defmacro sigil_r(p0, p1) do + # body not decompiled + end + + defmacro sigil_s(p0, p1) do + # body not decompiled + end + + defmacro sigil_w(p0, p1) do + # body not decompiled + end + + defmacro to_char_list(p0) do + # body not decompiled + end + + defmacro to_charlist(p0) do + # body not decompiled + end + + defmacro to_string(p0) do + # body not decompiled + end + + defmacro unless(p0, p1) do + # body not decompiled + end + + defmacro update_in(p0, p1) do + # body not decompiled + end + + defmacro use(p0) do + # body not decompiled + end + + defmacro use(p0, p1) do + # body not decompiled + end + + defmacro var!(p0) do + # body not decompiled + end + + defmacro var!(p0, p1) do + # body not decompiled + end + + defmacro left |> right do + # body not decompiled + end + + defmacro left || right do + # body not decompiled + end + + # Functions + + def left != right do + # body not decompiled + end + + def left !== right do + # body not decompiled + end + + def left * right do + # body not decompiled + end + + def (+value) do + # body not decompiled + end + + def left + right do + # body not decompiled + end + + def left ++ right do + # body not decompiled + end + + def (-value) do + # body not decompiled + end + + def left - right do + # body not decompiled + end + + def left -- right do + # body not decompiled + end + + def left / right do + # body not decompiled + end + + def left < right do + # body not decompiled + end + + def left <= right do + # body not decompiled + end + + def left == right do + # body not decompiled + end + + def left === right do + # body not decompiled + end + + def left =~ right do + # body not decompiled + end + + def left > right do + # body not decompiled + end + + def left >= right do + # body not decompiled + end + + def __info__(p0) do + # body not decompiled + end + + def abs(p0) do + # body not decompiled + end + + def apply(p0, p1) do + # body not decompiled + end + + def apply(p0, p1, p2) do + # body not decompiled + end + + def binary_part(p0, p1, p2) do + # body not decompiled + end + + def bit_size(p0) do + # body not decompiled + end + + def byte_size(p0) do + # body not decompiled + end + + def div(p0, p1) do + # body not decompiled + end + + def elem(p0, p1) do + # body not decompiled + end + + def exit(p0) do + # body not decompiled + end + + def function_exported?(p0, p1, p2) do + # body not decompiled + end + + def get_and_update_in(p0, p1, p2) do + # body not decompiled + end + + def get_in(p0, p1) do + # body not decompiled + end + + def hd(p0) do + # body not decompiled + end + + def inspect(p0) do + # body not decompiled + end + + def inspect(p0, p1) do + # body not decompiled + end + + def is_atom(p0) do + # body not decompiled + end + + def is_binary(p0) do + # body not decompiled + end + + def is_bitstring(p0) do + # body not decompiled + end + + def is_boolean(p0) do + # body not decompiled + end + + def is_float(p0) do + # body not decompiled + end + + def is_function(p0) do + # body not decompiled + end + + def is_function(p0, p1) do + # body not decompiled + end + + def is_integer(p0) do + # body not decompiled + end + + def is_list(p0) do + # body not decompiled + end + + def is_map(p0) do + # body not decompiled + end + + def is_number(p0) do + # body not decompiled + end + + def is_pid(p0) do + # body not decompiled + end + + def is_port(p0) do + # body not decompiled + end + + def is_reference(p0) do + # body not decompiled + end + + def is_tuple(p0) do + # body not decompiled + end + + def length(p0) do + # body not decompiled + end + + def macro_exported?(p0, p1, p2) do + # body not decompiled + end + + def make_ref() do + # body not decompiled + end + + def map_size(p0) do + # body not decompiled + end + + def max(p0, p1) do + # body not decompiled + end + + def min(p0, p1) do + # body not decompiled + end + + def module_info() do + # body not decompiled + end + + def module_info(p0) do + # body not decompiled + end + + def node() do + # body not decompiled + end + + def node(p0) do + # body not decompiled + end + + def not(p0) do + # body not decompiled + end + + def pop_in(p0, p1) do + # body not decompiled + end + + def put_elem(p0, p1, p2) do + # body not decompiled + end + + def put_in(p0, p1, p2) do + # body not decompiled + end + + def rem(p0, p1) do + # body not decompiled + end + + def round(p0) do + # body not decompiled + end + + def self() do + # body not decompiled + end + + def send(p0, p1) do + # body not decompiled + end + + def spawn(p0) do + # body not decompiled + end + + def spawn(p0, p1, p2) do + # body not decompiled + end + + def spawn_link(p0) do + # body not decompiled + end + + def spawn_link(p0, p1, p2) do + # body not decompiled + end + + def spawn_monitor(p0) do + # body not decompiled + end + + def spawn_monitor(p0, p1, p2) do + # body not decompiled + end + + def struct(p0) do + # body not decompiled + end + + def struct(p0, p1) do + # body not decompiled + end + + def struct!(p0) do + # body not decompiled + end + + def struct!(p0, p1) do + # body not decompiled + end + + def throw(p0) do + # body not decompiled + end + + def tl(p0) do + # body not decompiled + end + + def trunc(p0) do + # body not decompiled + end + + def tuple_size(p0) do + # body not decompiled + end + + def update_in(p0, p1, p2) do + # body not decompiled + end +end diff --git a/tests/org/elixir_lang/beam/DecompilerTest.java b/tests/org/elixir_lang/beam/DecompilerTest.java index 2074cffd4..51ff6787d 100644 --- a/tests/org/elixir_lang/beam/DecompilerTest.java +++ b/tests/org/elixir_lang/beam/DecompilerTest.java @@ -117,10 +117,14 @@ public void testIssue683() throws IOException, OtpErlangDecodeException { assertDecompiled("orber_ifr"); } - public void testIssue703() throws IOException, OtpErlangDecodeException { + public void testIssue703() throws IOException, OtpErlangDecodeException { assertDecompiled("Elixir.LDAPEx.ELDAPv3"); } + public void testIssue722() throws IOException, OtpErlangDecodeException { + assertDecompiled("OTP20/Elixir.Kernel"); + } + /* * Instance Methods */