这是indexloc提供的服务,不要输入任何密码
Skip to content

extend not working 'pb/standard.lua:357: table index is nil' #27

@niziak

Description

@niziak

When message extension is used, following error is printed:

luajit: /usr/local/share/lua/5.1/pb/standard.lua:357: table index is nil
stack traceback:
	/usr/local/share/lua/5.1/pb/standard.lua:357: in function 'define'
	/usr/local/share/lua/5.1/pb/standard.lua:219: in function 'define_types'
	/usr/local/share/lua/5.1/pb/standard.lua:253: in function 'define'
	/usr/local/share/lua/5.1/pb/standard.lua:219: in function 'define_types'
	/usr/local/share/lua/5.1/pb/standard.lua:373: in function 'compile'
	/usr/local/share/lua/5.1/pb.lua:182: in function 'load_proto'
	./test_extension.lua:20: in main chunk
	[C]: at 0x004043f0

Problem is in line 357 in pb/standard.lua: field.tag_type is nil. Table ket tag_type not exists.

Code to reproduce:

#!/usr/bin/env luajit

local proto = [[
message DeviceInfo {
  optional int32        deviceId             = 1;  
  optional int32        deviceType        = 2;
  
  extensions 100 to 199;   
}

message BatteryInfo {
  extend DeviceInfo {
    optional BatteryInfo batteryInfo = 100;
  }
  optional int32 addId = 1;
}
]]
  
local pb = require 'pb'
local Msgs = pb.load_proto(proto, "Message");

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions