https://bugs.kde.org/show_bug.cgi?id=403027
            Bug ID: 403027
           Summary: type inference bloats when functools.partial is
                    present, but functools is not imported
           Product: kdev-python
           Version: 5.3.1
          Platform: openSUSE RPMs
                OS: Linux
            Status: REPORTED
          Severity: minor
          Priority: NOR
         Component: Code completion
          Assignee: m...@svenbrauch.de
          Reporter: myautn...@gmail.com
  Target Milestone: ---

SUMMARY
For the following code, inferred type for bar grows exponentially each time
file is reparsed (during the save, I presume), in the end this causes kdevelop
to hung because it took too much to process it.

from typing import List, Optional, Tuple

class Instance:
    pass

def ham(instances: List[Instance]) -> List[Instance]:
    command_args = ["true"]
    action = functools.partial(bar, command_args=command_args)
    instances = map(action, instances)

    return list(filter(None, instances))

def bar(instance: Instance, command_args: List[str]) -> Optional[Instance]:
    return instance

Note that importing functools resolves the issue. 

OBSERVED RESULT
unsure (Instance, function unsure (Instance, function Instance (Instance,
mixed)) (unsure (Instance, function Instance (Instance, mixed)), mixed)) bar(
unsure (Instance, function unsure (Instance, function Instance (Instance,
mixed)) (unsure (Instance, function Instance (Instance, mixed)), mixed))
instance, mixed command_args )

EXPECTED RESULT
Instance bar( Instance instance, mixed command_args)

SOFTWARE/OS VERSIONS
KDE Frameworks 5.45.0
Qt 5.9.4 (built against 5.9.4)
The xcb windowing system

ADDITIONAL INFORMATION

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to