bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#21840: 24.5; semantic analysis of python files is broken by strings


From: Glyph
Subject: bug#21840: 24.5; semantic analysis of python files is broken by strings that end in backslash
Date: Thu, 3 Dec 2020 10:48:50 -0800

I don't know how to force semantic to fully reparse a file, I just observe its 
behavior in response to idle times.

Here's a test file you can use though, if you know how to do that:


def a(v):
    "test"

def x():
    "test"
    a(b"\\")

def y():
    "test"

def z():
    "test"


Comment and uncomment the 'a(b"\\")' line and let semantic get around to 
reparsing the buffer, however it decides to do that, and (mapcar 'car 
(semantic-fetch-tags)) will  return ("a" "x") rather than the expected ("a" "x" 
"y" "z").  However, it seems like there's tons of cache state somewhere that I 
can't easily clear out because it randomly seems to fluctuate between doing 
what I expect, returning "nil", and returning a stale copy of the symbols 
(including stuff added and then removed entirely from the bottom of the buffer).

Sadly, given that I don't use semantic any more (specifically because of this 
type of inscrutable unreliability) I don't have any more time for debugging 
this.  Thanks for following up and good luck!

-g

> On Dec 3, 2020, at 2:46 AM, Lars Ingebrigtsen <larsi@gnus.org> wrote:
> 
> Glyph Lefkowitz <glyph@twistedmatrix.com> writes:
> 
>> Python string literals that end in a backslash cause Semantic's parser
>> to halt and not recognize anything further in the buffer.  I personally
>> ran across this because I frequently use helm-semantic-or-imenu, but can
>> be demonstrated equally well by semantic-complete-jump-local or anything
>> else that makes use of the buffer's symbol list.
>> 
>> The trivial way to reproduce this is to put the string literal "\\" at
>> the top of a Python buffer and then invoke semantic in one of the ways
>> just mentioned and notice that nothing is picked up.  You can move the
>> backslash literal down in the file and see every symbol up to the point
>> where it is placed.
> 
> (This bug report unfortunately got no response at the time.)
> 
> Do you have a step-by-step recipe to reproduce this bug, starting from
> "emacs -Q"?
> 
> -- 
> (domestic pets only, the antidote for overdose, milk.)
>   bloggy blog: http://lars.ingebrigtsen.no






reply via email to

[Prev in Thread] Current Thread [Next in Thread]