TechMagister / cracker

Auto-completion client/server for the Crystal language.
MIT License
48 stars 3 forks source link

New version of `mosop/cli` package crashes app #9

Closed aurimasniekis closed 7 years ago

aurimasniekis commented 7 years ago

The new version of mosop/cli package crashes app. I installed mosop/cli with version 0.5.1 and it was working.

Here is the log:

Error in macro 'inherit_callback_group' expanded macro: enable:12, line 1:

>  1.       ::Callback.__define_callback_group(true, :validate, ::Proc(::Cracker::Commands::Cracker::Options, ::Nil), "", "", "", ::Cracker::Commands::Cracker::Options::Parser)
   2.

expanding macro
in macro '__define_callback_group' /private/tmp/cracker/lib/callback/src/callback/macros/__define_callback_group.cr:2, line 46:

   1.
   2.
   3.
   4.
   5.
   6.
   7.
   8.
   9.
  10.
  11.
  12.
  13.
  14.     class ::Cracker::Commands::Cracker::Options::Parser
  15.
  16.
  17.       def run_callbacks_for_validate(*args)
  18.         results = renew_callback_results_for_validate
  19.         run_callbacks_for_validate__before results, self, *args
  20.         run_callbacks_for_validate__around results, self, *args
  21.         run_callbacks_for_validate__on results, self, *args
  22.         result = yield results
  23.         run_callbacks_for_validate__around results, self, *args
  24.         run_callbacks_for_validate__after results, self, *args
  25.         result
  26.       end
  27.
  28.       # :nodoc:
  29.       def renew_callback_results_for_validate
  30.         rs = ::Callback::ResultSet(::Nil).new
  31.         @callback_results["validate"] = rs
  32.         rs
  33.       end
  34.
  35.       def callback_results_for_validate
  36.         (@callback_results["validate"] ||= ::Callback::ResultSet(::Nil).new).as(::Callback::ResultSet(::Nil))
  37.       end
  38.
  39.
  40.
  41.
  42.
  43.
  44.
  45.
> 46.           @@cracker_commands_cracker_options_parser__callbacks_for_validate__before = ::Array(::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil)).new
  47.           def self.cracker_commands_cracker_options_parser__callbacks_for_validate__before
  48.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__before
  49.           end
  50.
  51.           @@cracker_commands_cracker_options_parser__callback_names_for_validate__before = {} of ::Pointer(::Void) => ::String
  52.           def self.cracker_commands_cracker_options_parser__callback_names_for_validate__before
  53.             @@cracker_commands_cracker_options_parser__callback_names_for_validate__before
  54.           end
  55.
  56.           def self.append_callback_for_validate__before(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil), name)
  57.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__before << proc
  58.             @@cracker_commands_cracker_options_parser__callback_names_for_validate__before[proc.pointer] = name.to_s if name
  59.           end
  60.
  61.           def self.before_validate(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
  62.             append_callback_for_validate__before proc, nil
  63.           end
  64.
  65.           def self.before_validate(name, proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
  66.             append_callback_for_validate__before proc, name
  67.           end
  68.
  69.           def self.before_validate(name = nil, &block : Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options -> ::Nil)
  70.             proc = ->(_1 : Cracker::Commands::Cracker::Options::Parser, _2 : ::Cracker::Commands::Cracker::Options) {
  71.               block.call _1, _2
  72.
  73.             }
  74.             append_callback_for_validate__before proc, name
  75.           end
  76.
  77.           # :nodoc:
  78.           def self.run_callbacks_for_validate__before(results, *args)
  79.
  80.
  81.                 super
  82.
  83.               ::Cracker::Commands::Cracker::Options::Parser.run_callbacks_for_validate__before2 results, *args
  84.
  85.           end
  86.
  87.           # :nodoc:
  88.           def self.run_callbacks_for_validate__before2(results, _1, _2)
  89.
  90.               _1 = _1.as(Cracker::Commands::Cracker::Options::Parser)
  91.
  92.               _2 = _2.as(::Cracker::Commands::Cracker::Options)
  93.
  94.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__before.each do |proc|
  95.               result = proc.call(_1, _2)
  96.               results.all << result
  97.               results.before << result
  98.               if name = @@cracker_commands_cracker_options_parser__callback_names_for_validate__before[proc.pointer]?
  99.                 results[name] = result
 100.               end
 101.             end
 102.           end
 103.
 104.
 105.
 106.
 107.
 108.
 109.           @cracker_commands_cracker_options_parser__callbacks_for_validate__before = ::Array(::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil)).new
 110.           def cracker_commands_cracker_options_parser__callbacks_for_validate__before
 111.             @cracker_commands_cracker_options_parser__callbacks_for_validate__before
 112.           end
 113.
 114.           @cracker_commands_cracker_options_parser__callback_names_for_validate__before = {} of ::Pointer(::Void) => ::String
 115.           def cracker_commands_cracker_options_parser__callback_names_for_validate__before
 116.             @cracker_commands_cracker_options_parser__callback_names_for_validate__before
 117.           end
 118.
 119.           def append_callback_for_validate__before(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil), name)
 120.             @cracker_commands_cracker_options_parser__callbacks_for_validate__before << proc
 121.             @cracker_commands_cracker_options_parser__callback_names_for_validate__before[proc.pointer] = name.to_s if name
 122.           end
 123.
 124.           def before_validate(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 125.             append_callback_for_validate__before proc, nil
 126.           end
 127.
 128.           def before_validate(name, proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 129.             append_callback_for_validate__before proc, name
 130.           end
 131.
 132.           def before_validate(name = nil, &block : Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options -> ::Nil)
 133.             proc = ->(_1 : Cracker::Commands::Cracker::Options::Parser, _2 : ::Cracker::Commands::Cracker::Options) {
 134.               block.call _1, _2
 135.
 136.             }
 137.             append_callback_for_validate__before proc, name
 138.           end
 139.
 140.           # :nodoc:
 141.           def run_callbacks_for_validate__before(results, *args)
 142.
 143.               ::Cracker::Commands::Cracker::Options::Parser.run_callbacks_for_validate__before results, *args
 144.               run_callbacks_for_validate__before2 results, *args
 145.
 146.           end
 147.
 148.           # :nodoc:
 149.           def run_callbacks_for_validate__before2(results, _1, _2)
 150.
 151.               _1 = _1.as(Cracker::Commands::Cracker::Options::Parser)
 152.
 153.               _2 = _2.as(::Cracker::Commands::Cracker::Options)
 154.
 155.             @cracker_commands_cracker_options_parser__callbacks_for_validate__before.each do |proc|
 156.               result = proc.call(_1, _2)
 157.               results.all << result
 158.               results.before << result
 159.               if name = @cracker_commands_cracker_options_parser__callback_names_for_validate__before[proc.pointer]?
 160.                 results[name] = result
 161.               end
 162.             end
 163.           end
 164.
 165.
 166.
 167.
 168.
 169.
 170.
 171.
 172.           @@cracker_commands_cracker_options_parser__callbacks_for_validate__around = ::Array(::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil)).new
 173.           def self.cracker_commands_cracker_options_parser__callbacks_for_validate__around
 174.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__around
 175.           end
 176.
 177.           @@cracker_commands_cracker_options_parser__callback_names_for_validate__around = {} of ::Pointer(::Void) => ::String
 178.           def self.cracker_commands_cracker_options_parser__callback_names_for_validate__around
 179.             @@cracker_commands_cracker_options_parser__callback_names_for_validate__around
 180.           end
 181.
 182.           def self.append_callback_for_validate__around(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil), name)
 183.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__around << proc
 184.             @@cracker_commands_cracker_options_parser__callback_names_for_validate__around[proc.pointer] = name.to_s if name
 185.           end
 186.
 187.           def self.around_validate(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 188.             append_callback_for_validate__around proc, nil
 189.           end
 190.
 191.           def self.around_validate(name, proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 192.             append_callback_for_validate__around proc, name
 193.           end
 194.
 195.           def self.around_validate(name = nil, &block : Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options -> ::Nil)
 196.             proc = ->(_1 : Cracker::Commands::Cracker::Options::Parser, _2 : ::Cracker::Commands::Cracker::Options) {
 197.               block.call _1, _2
 198.
 199.             }
 200.             append_callback_for_validate__around proc, name
 201.           end
 202.
 203.           # :nodoc:
 204.           def self.run_callbacks_for_validate__around(results, *args)
 205.
 206.
 207.                 super
 208.
 209.               ::Cracker::Commands::Cracker::Options::Parser.run_callbacks_for_validate__around2 results, *args
 210.
 211.           end
 212.
 213.           # :nodoc:
 214.           def self.run_callbacks_for_validate__around2(results, _1, _2)
 215.
 216.               _1 = _1.as(Cracker::Commands::Cracker::Options::Parser)
 217.
 218.               _2 = _2.as(::Cracker::Commands::Cracker::Options)
 219.
 220.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__around.each do |proc|
 221.               result = proc.call(_1, _2)
 222.               results.all << result
 223.               results.around << result
 224.               if name = @@cracker_commands_cracker_options_parser__callback_names_for_validate__around[proc.pointer]?
 225.                 results[name] = result
 226.               end
 227.             end
 228.           end
 229.
 230.
 231.
 232.
 233.
 234.
 235.           @cracker_commands_cracker_options_parser__callbacks_for_validate__around = ::Array(::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil)).new
 236.           def cracker_commands_cracker_options_parser__callbacks_for_validate__around
 237.             @cracker_commands_cracker_options_parser__callbacks_for_validate__around
 238.           end
 239.
 240.           @cracker_commands_cracker_options_parser__callback_names_for_validate__around = {} of ::Pointer(::Void) => ::String
 241.           def cracker_commands_cracker_options_parser__callback_names_for_validate__around
 242.             @cracker_commands_cracker_options_parser__callback_names_for_validate__around
 243.           end
 244.
 245.           def append_callback_for_validate__around(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil), name)
 246.             @cracker_commands_cracker_options_parser__callbacks_for_validate__around << proc
 247.             @cracker_commands_cracker_options_parser__callback_names_for_validate__around[proc.pointer] = name.to_s if name
 248.           end
 249.
 250.           def around_validate(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 251.             append_callback_for_validate__around proc, nil
 252.           end
 253.
 254.           def around_validate(name, proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 255.             append_callback_for_validate__around proc, name
 256.           end
 257.
 258.           def around_validate(name = nil, &block : Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options -> ::Nil)
 259.             proc = ->(_1 : Cracker::Commands::Cracker::Options::Parser, _2 : ::Cracker::Commands::Cracker::Options) {
 260.               block.call _1, _2
 261.
 262.             }
 263.             append_callback_for_validate__around proc, name
 264.           end
 265.
 266.           # :nodoc:
 267.           def run_callbacks_for_validate__around(results, *args)
 268.
 269.               ::Cracker::Commands::Cracker::Options::Parser.run_callbacks_for_validate__around results, *args
 270.               run_callbacks_for_validate__around2 results, *args
 271.
 272.           end
 273.
 274.           # :nodoc:
 275.           def run_callbacks_for_validate__around2(results, _1, _2)
 276.
 277.               _1 = _1.as(Cracker::Commands::Cracker::Options::Parser)
 278.
 279.               _2 = _2.as(::Cracker::Commands::Cracker::Options)
 280.
 281.             @cracker_commands_cracker_options_parser__callbacks_for_validate__around.each do |proc|
 282.               result = proc.call(_1, _2)
 283.               results.all << result
 284.               results.around << result
 285.               if name = @cracker_commands_cracker_options_parser__callback_names_for_validate__around[proc.pointer]?
 286.                 results[name] = result
 287.               end
 288.             end
 289.           end
 290.
 291.
 292.
 293.
 294.
 295.
 296.
 297.
 298.           @@cracker_commands_cracker_options_parser__callbacks_for_validate__after = ::Array(::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil)).new
 299.           def self.cracker_commands_cracker_options_parser__callbacks_for_validate__after
 300.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__after
 301.           end
 302.
 303.           @@cracker_commands_cracker_options_parser__callback_names_for_validate__after = {} of ::Pointer(::Void) => ::String
 304.           def self.cracker_commands_cracker_options_parser__callback_names_for_validate__after
 305.             @@cracker_commands_cracker_options_parser__callback_names_for_validate__after
 306.           end
 307.
 308.           def self.append_callback_for_validate__after(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil), name)
 309.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__after << proc
 310.             @@cracker_commands_cracker_options_parser__callback_names_for_validate__after[proc.pointer] = name.to_s if name
 311.           end
 312.
 313.           def self.after_validate(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 314.             append_callback_for_validate__after proc, nil
 315.           end
 316.
 317.           def self.after_validate(name, proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 318.             append_callback_for_validate__after proc, name
 319.           end
 320.
 321.           def self.after_validate(name = nil, &block : Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options -> ::Nil)
 322.             proc = ->(_1 : Cracker::Commands::Cracker::Options::Parser, _2 : ::Cracker::Commands::Cracker::Options) {
 323.               block.call _1, _2
 324.
 325.             }
 326.             append_callback_for_validate__after proc, name
 327.           end
 328.
 329.           # :nodoc:
 330.           def self.run_callbacks_for_validate__after(results, *args)
 331.
 332.
 333.                 super
 334.
 335.               ::Cracker::Commands::Cracker::Options::Parser.run_callbacks_for_validate__after2 results, *args
 336.
 337.           end
 338.
 339.           # :nodoc:
 340.           def self.run_callbacks_for_validate__after2(results, _1, _2)
 341.
 342.               _1 = _1.as(Cracker::Commands::Cracker::Options::Parser)
 343.
 344.               _2 = _2.as(::Cracker::Commands::Cracker::Options)
 345.
 346.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__after.each do |proc|
 347.               result = proc.call(_1, _2)
 348.               results.all << result
 349.               results.after << result
 350.               if name = @@cracker_commands_cracker_options_parser__callback_names_for_validate__after[proc.pointer]?
 351.                 results[name] = result
 352.               end
 353.             end
 354.           end
 355.
 356.
 357.
 358.
 359.
 360.
 361.           @cracker_commands_cracker_options_parser__callbacks_for_validate__after = ::Array(::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil)).new
 362.           def cracker_commands_cracker_options_parser__callbacks_for_validate__after
 363.             @cracker_commands_cracker_options_parser__callbacks_for_validate__after
 364.           end
 365.
 366.           @cracker_commands_cracker_options_parser__callback_names_for_validate__after = {} of ::Pointer(::Void) => ::String
 367.           def cracker_commands_cracker_options_parser__callback_names_for_validate__after
 368.             @cracker_commands_cracker_options_parser__callback_names_for_validate__after
 369.           end
 370.
 371.           def append_callback_for_validate__after(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil), name)
 372.             @cracker_commands_cracker_options_parser__callbacks_for_validate__after << proc
 373.             @cracker_commands_cracker_options_parser__callback_names_for_validate__after[proc.pointer] = name.to_s if name
 374.           end
 375.
 376.           def after_validate(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 377.             append_callback_for_validate__after proc, nil
 378.           end
 379.
 380.           def after_validate(name, proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 381.             append_callback_for_validate__after proc, name
 382.           end
 383.
 384.           def after_validate(name = nil, &block : Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options -> ::Nil)
 385.             proc = ->(_1 : Cracker::Commands::Cracker::Options::Parser, _2 : ::Cracker::Commands::Cracker::Options) {
 386.               block.call _1, _2
 387.
 388.             }
 389.             append_callback_for_validate__after proc, name
 390.           end
 391.
 392.           # :nodoc:
 393.           def run_callbacks_for_validate__after(results, *args)
 394.
 395.               ::Cracker::Commands::Cracker::Options::Parser.run_callbacks_for_validate__after results, *args
 396.               run_callbacks_for_validate__after2 results, *args
 397.
 398.           end
 399.
 400.           # :nodoc:
 401.           def run_callbacks_for_validate__after2(results, _1, _2)
 402.
 403.               _1 = _1.as(Cracker::Commands::Cracker::Options::Parser)
 404.
 405.               _2 = _2.as(::Cracker::Commands::Cracker::Options)
 406.
 407.             @cracker_commands_cracker_options_parser__callbacks_for_validate__after.each do |proc|
 408.               result = proc.call(_1, _2)
 409.               results.all << result
 410.               results.after << result
 411.               if name = @cracker_commands_cracker_options_parser__callback_names_for_validate__after[proc.pointer]?
 412.                 results[name] = result
 413.               end
 414.             end
 415.           end
 416.
 417.
 418.
 419.
 420.
 421.
 422.
 423.
 424.           @@cracker_commands_cracker_options_parser__callbacks_for_validate__on = ::Array(::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil)).new
 425.           def self.cracker_commands_cracker_options_parser__callbacks_for_validate__on
 426.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__on
 427.           end
 428.
 429.           @@cracker_commands_cracker_options_parser__callback_names_for_validate__on = {} of ::Pointer(::Void) => ::String
 430.           def self.cracker_commands_cracker_options_parser__callback_names_for_validate__on
 431.             @@cracker_commands_cracker_options_parser__callback_names_for_validate__on
 432.           end
 433.
 434.           def self.append_callback_for_validate__on(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil), name)
 435.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__on << proc
 436.             @@cracker_commands_cracker_options_parser__callback_names_for_validate__on[proc.pointer] = name.to_s if name
 437.           end
 438.
 439.           def self.on_validate(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 440.             append_callback_for_validate__on proc, nil
 441.           end
 442.
 443.           def self.on_validate(name, proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 444.             append_callback_for_validate__on proc, name
 445.           end
 446.
 447.           def self.on_validate(name = nil, &block : Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options -> ::Nil)
 448.             proc = ->(_1 : Cracker::Commands::Cracker::Options::Parser, _2 : ::Cracker::Commands::Cracker::Options) {
 449.               block.call _1, _2
 450.
 451.             }
 452.             append_callback_for_validate__on proc, name
 453.           end
 454.
 455.           # :nodoc:
 456.           def self.run_callbacks_for_validate__on(results, *args)
 457.
 458.
 459.                 super
 460.
 461.               ::Cracker::Commands::Cracker::Options::Parser.run_callbacks_for_validate__on2 results, *args
 462.
 463.           end
 464.
 465.           # :nodoc:
 466.           def self.run_callbacks_for_validate__on2(results, _1, _2)
 467.
 468.               _1 = _1.as(Cracker::Commands::Cracker::Options::Parser)
 469.
 470.               _2 = _2.as(::Cracker::Commands::Cracker::Options)
 471.
 472.             @@cracker_commands_cracker_options_parser__callbacks_for_validate__on.each do |proc|
 473.               result = proc.call(_1, _2)
 474.               results.all << result
 475.               results.on << result
 476.               if name = @@cracker_commands_cracker_options_parser__callback_names_for_validate__on[proc.pointer]?
 477.                 results[name] = result
 478.               end
 479.             end
 480.           end
 481.
 482.
 483.
 484.
 485.
 486.
 487.           @cracker_commands_cracker_options_parser__callbacks_for_validate__on = ::Array(::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil)).new
 488.           def cracker_commands_cracker_options_parser__callbacks_for_validate__on
 489.             @cracker_commands_cracker_options_parser__callbacks_for_validate__on
 490.           end
 491.
 492.           @cracker_commands_cracker_options_parser__callback_names_for_validate__on = {} of ::Pointer(::Void) => ::String
 493.           def cracker_commands_cracker_options_parser__callback_names_for_validate__on
 494.             @cracker_commands_cracker_options_parser__callback_names_for_validate__on
 495.           end
 496.
 497.           def append_callback_for_validate__on(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil), name)
 498.             @cracker_commands_cracker_options_parser__callbacks_for_validate__on << proc
 499.             @cracker_commands_cracker_options_parser__callback_names_for_validate__on[proc.pointer] = name.to_s if name
 500.           end
 501.
 502.           def on_validate(proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 503.             append_callback_for_validate__on proc, nil
 504.           end
 505.
 506.           def on_validate(name, proc : ::Proc(Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options, ::Nil))
 507.             append_callback_for_validate__on proc, name
 508.           end
 509.
 510.           def on_validate(name = nil, &block : Cracker::Commands::Cracker::Options::Parser, ::Cracker::Commands::Cracker::Options -> ::Nil)
 511.             proc = ->(_1 : Cracker::Commands::Cracker::Options::Parser, _2 : ::Cracker::Commands::Cracker::Options) {
 512.               block.call _1, _2
 513.
 514.             }
 515.             append_callback_for_validate__on proc, name
 516.           end
 517.
 518.           # :nodoc:
 519.           def run_callbacks_for_validate__on(results, *args)
 520.
 521.               ::Cracker::Commands::Cracker::Options::Parser.run_callbacks_for_validate__on results, *args
 522.               run_callbacks_for_validate__on2 results, *args
 523.
 524.           end
 525.
 526.           # :nodoc:
 527.           def run_callbacks_for_validate__on2(results, _1, _2)
 528.
 529.               _1 = _1.as(Cracker::Commands::Cracker::Options::Parser)
 530.
 531.               _2 = _2.as(::Cracker::Commands::Cracker::Options)
 532.
 533.             @cracker_commands_cracker_options_parser__callbacks_for_validate__on.each do |proc|
 534.               result = proc.call(_1, _2)
 535.               results.all << result
 536.               results.on << result
 537.               if name = @cracker_commands_cracker_options_parser__callback_names_for_validate__on[proc.pointer]?
 538.                 results[name] = result
 539.               end
 540.             end
 541.           end
 542.
 543.
 544.     end
 545.

undefined constant Cracker::Commands::Cracker::Options::Parser
TechMagister commented 7 years ago

I made a patch but the compiler crashed ( https://github.com/crystal-lang/crystal/issues/3946 ) So we'll have to continue with version 0.5.1 for the moment.

Edit : Bug fixed.