โมดูล Elixir Simple จะสร้าง“ Argument Error” เท่านั้น
ฉันมีโมดูลแบบสแตนด์อโลนที่เรียบง่ายซึ่งให้ผล:
ยาอายุวัฒนะ im_bad.ex ** ข้อผิดพลาดอาร์กิวเมนต์ (ArgumentError)
ใน IEX:
=> iex Erlang / OTP 23 [erts-11.1] [source] [64-bit] [smp: 12: 12] [ds: 12: 12: 10] [async-threads: 1] [hipe] Interactive Elixir (1.9.4) - กด Ctrl + C เพื่อออก (พิมพ์ h () ENTER เพื่อขอความช่วยเหลือ) iex (1)> ค "im_bad.ex" == ข้อผิดพลาดในการคอมไพล์ในไฟล์ im_bad.ex == ** ข้อผิดพลาดอาร์กิวเมนต์ (ArgumentError) ** ข้อผิดพลาดอาร์กิวเมนต์ (ArgumentError)
รหัส:
defmodule ImplBad ทำ
def run_addition_pro issues (aconfig) ทำ
do_addition_pro issues (aconfig)
จบ
จบ
วางโค้ด 5 บรรทัดนี้ในไฟล์ด้วยตัวเอง
ฉันรู้ว่า do_addition_pro issues () ไม่มีอยู่ แต่ฉันคาดว่าจะมีข้อผิดพลาดที่ไม่ได้กำหนดกับหมายเลขบรรทัด
ฉันแตกโค้ดนี้จากไฟล์โปรเจ็กต์ที่มี do_addition_pro issues ()
ฉันคาดหวังข้อมูลเพิ่มเติมเล็กน้อยจากคอมไพเลอร์ ฉันต้องทำการ "ค้นหาแบบไบนารี" จากโมดูลประมาณ 1k LOC เพื่อระบุปัญหานี้
ปัญหานี้เป็นยาอายุวัฒนะ 1.9.4 หรือไม่?
คำตอบ
นี่เป็นปัญหาในการใช้งานErlang/OTP 23 และ Elixir 1.9.4พร้อมกัน
Elixir 1.9เป็นรุ่นเก่ากว่าOTP 23แต่ยาอายุวัฒนะอย่างเต็มที่ยกระดับ OTP จึงอาศัยอยู่กับบางคำเตือน / ข้อความมาจากErlangคอมไพเลอร์ในระหว่างการรวบรวม
ที่กล่าวว่าการปรับลดรุ่นOTPเป็นเวอร์ชันElixir 1.9นั้นเป็นสิ่งที่รับรู้ ( 21ก็ใช้ได้ฉันเชื่อว่า) หรือการอัปเกรดElixirเป็นรุ่นล่าสุด1.11.1จะช่วยแก้ปัญหาในการผลิตแฟนซีได้
== Compilation error in file /tmp/test.ex ==
** (CompileError) /tmp/test.ex:3: undefined function do_addition_problems/1
(elixir 1.11.1) src/elixir_locals.erl:114: anonymous fn/3 in :elixir_locals.ensure_no_undefined_local/3
(stdlib 3.13.2) erl_eval.erl:680: :erl_eval.do_apply/6