I seems that the test SourceInfoTest, ScopedOptions in 
google/protobuf/compiler/parser_unittest.cc checks the case of options.

I also checked the Spans there and they seem to be correct. For:

message Foo {
$a$option mopt = 1;$b$
}
enum Bar {
$c$option eopt = 1;$d$
}
service Baz {
$e$option sopt = 1;$f$
rpc M(X) returns(Y) {
$g$option mopt = 1;$h$
}
rpc MS4($1$stream$2$ X) returns($3$stream$4$ Y) {
$k$option mopt = 1;$l$
}
}

We get:

SPAN: a:b
-> 1
-> 2
-> 18
SPAN: c:d
-> 4
-> 2
-> 18
SPAN: e:f
-> 7
-> 2
-> 18
SPAN: g:h
-> 9
-> 4
-> 20
SPAN: k:l
-> 12
-> 4
-> 20
SPAN: 1:2
-> 11
-> 10
-> 16
SPAN: 3:4
-> 11
-> 28
-> 34
On Friday, May 26, 2023 at 8:51:03 AM UTC+8 Clément Jean wrote:

> Should I create an issue on Github for this? Is there any way I can 
> contribute to make things go faster?
>
> On Friday, May 26, 2023 at 2:07:17 AM UTC+8 Adam Cozzette wrote:
>
>> I'm not sure what's going wrong, but I agree with you that those spans in 
>> red don't look right. This might be a bug in the code that generates the 
>> source code info.
>>
>> On Mon, May 22, 2023 at 7:54 PM Clément Jean <[email protected]> wrote:
>>
>>> Also to be complete, I use the following command to turn the proto file 
>>> into a desc file:
>>>
>>> protoc --include_source_info --descriptor_set_out=test.desc enum.proto
>>>
>>> and then to have a human readable format, I run:
>>>
>>> cat test.desc | protoc --decode=google.protobuf.FileDescriptorSet 
>>> -I/usr/local/include/google/protobuf 
>>> /usr/local/include/google/protobuf/descriptor.proto
>>>
>>> finally, protoc --version returns:
>>>
>>> libprotoc 23.1
>>> On Tuesday, May 23, 2023 at 8:59:21 AM UTC+8 Clément Jean wrote:
>>>
>>>> I'm working a parser for Protobuf and recently I am working with 
>>>> SourceLocationInfo.
>>>> I've been noticing something weird when using options. However, I'm not 
>>>> sure if my understanding is not complete or if its a bug.
>>>>
>>>> I have the following enum:
>>>>
>>>> enum Test {
>>>> option deprecated = true;
>>>>
>>>> TEST_UNSPECIFIED = 0;
>>>> }
>>>>
>>>> And I get the following FileDescriptorSet (simplified):
>>>>
>>>> file {
>>>>   ...
>>>>   source_code_info {
>>>>     location {
>>>>       span: 0
>>>>       span: 0
>>>>       span: 4
>>>>       span: 1
>>>>     }
>>>>     location {
>>>>       path: 5
>>>>       path: 0
>>>>       span: 0
>>>>       span: 0
>>>>       span: 4
>>>>       span: 1
>>>>     }
>>>>     location {
>>>>       path: 5
>>>>       path: 0
>>>>       path: 1
>>>>       span: 0
>>>>       span: 5
>>>>       span: 9
>>>>     }
>>>>     location {
>>>>       path: 5
>>>>       path: 0
>>>>       path: 3
>>>>       span: 1
>>>>       span: 8
>>>>       span: 33
>>>>     }
>>>>     location {
>>>>       path: 5
>>>>       path: 0
>>>>       path: 3
>>>>       path: 3
>>>>       span: 1
>>>>       span: 8
>>>>       span: 33
>>>>     }
>>>>     location {
>>>>       path: 5
>>>>       path: 0
>>>>       path: 2
>>>>       path: 0
>>>>       span: 3
>>>>       span: 8
>>>>       span: 29
>>>>     }
>>>>     location {
>>>>       path: 5
>>>>       path: 0
>>>>       path: 2
>>>>       path: 0
>>>>       path: 1
>>>>       span: 3
>>>>       span: 8
>>>>       span: 24
>>>>     }
>>>>     location {
>>>>       path: 5
>>>>       path: 0
>>>>       path: 2
>>>>       path: 0
>>>>       path: 2
>>>>       span: 3
>>>>       span: 27
>>>>       span: 28
>>>>     }
>>>>   }
>>>> }
>>>>
>>>> I'm confused by the ones I wrote in red. These doesn't seem to be 
>>>> correct.
>>>> An example is span: 1 span: 8 span: 33. To the best of my knowledge, 
>>>> this means
>>>> that we have an element at line 1 (2 in an IDE) column 8 (9 in IDE) 
>>>> that finishes on the same line (third span omitted) and at column 33. 
>>>> However, the option line is only 27 characters long...
>>>>
>>>> Is my mental model about SourceCodeInfo wrong? Or is it a bug?
>>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Protocol Buffers" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/protobuf/a2ce2413-325d-4609-9150-804baa16d177n%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/protobuf/a2ce2413-325d-4609-9150-804baa16d177n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/protobuf/fac0b5e4-a3c4-4981-8e46-75462d0d9692n%40googlegroups.com.

Reply via email to