@@ -317,14 +317,16 @@ defmodule Protocol do
317
317
[
318
318
{ :abstract_code , { _raw , abstract_code } } ,
319
319
{ :attributes , attributes } ,
320
- { :compile_info , compile_info } ,
321
- { 'ExDc' , docs } ,
322
- { 'ExDp' , deprecated }
320
+ { :compile_info , compile_info } | extra_chunks
323
321
] = entries
324
322
323
+ extra_chunks =
324
+ for { name , contents } when is_binary ( contents ) <- extra_chunks ,
325
+ do: { List . to_string ( name ) , contents }
326
+
325
327
case attributes [ :protocol ] do
326
328
[ fallback_to_any: any ] ->
327
- { :ok , { protocol , any , abstract_code } , { compile_info , docs , deprecated } }
329
+ { :ok , { protocol , any , abstract_code } , { compile_info , extra_chunks } }
328
330
329
331
_ ->
330
332
{ :error , :not_a_protocol }
@@ -493,15 +495,11 @@ defmodule Protocol do
493
495
end
494
496
495
497
# Finally compile the module and emit its bytecode.
496
- defp compile ( protocol , code , { compile_info , docs , deprecated } ) do
498
+ defp compile ( protocol , code , { compile_info , extra_chunks } ) do
497
499
opts = Keyword . take ( compile_info , [ :source ] )
498
500
opts = if Code . compiler_options ( ) [ :debug_info ] , do: [ :debug_info | opts ] , else: opts
499
501
{ :ok , ^ protocol , binary , _warnings } = :compile . forms ( code , [ :return | opts ] )
500
-
501
- case docs do
502
- :missing_chunk -> { :ok , binary }
503
- _ -> { :ok , :elixir_erl . add_beam_chunks ( binary , [ { "ExDc" , docs } , { "ExDp" , deprecated } ] ) }
504
- end
502
+ { :ok , :elixir_erl . add_beam_chunks ( binary , extra_chunks ) }
505
503
end
506
504
507
505
## Definition callbacks
0 commit comments