Skip to content

Commit

Permalink
Port property-related workaround from infer_functiondef to `infer_p…
Browse files Browse the repository at this point in the history
…roperty` (#2119)
  • Loading branch information
jacobtylerwalls authored Apr 16, 2023
1 parent ee2d4bd commit 5869ee3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
4 changes: 4 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ Release date: TBA

Closes pylint-dev/pylint#8544

* ``infer_property()`` now observes the same property-specific workaround as ``infer_functiondef``.

Refs #1490

What's New in astroid 2.15.3?
=============================
Release date: TBA
Expand Down
3 changes: 2 additions & 1 deletion astroid/brain/brain_builtin_inference.py
Original file line number Diff line number Diff line change
Expand Up @@ -562,9 +562,10 @@ def infer_property(
function=inferred,
name=inferred.name,
lineno=node.lineno,
parent=node,
col_offset=node.col_offset,
)
# Set parent outside __init__: https://github.com/pylint-dev/astroid/issues/1490
prop_func.parent = node
prop_func.postinit(
body=[],
args=inferred.args,
Expand Down
8 changes: 8 additions & 0 deletions tests/brain/test_builtin.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@ def getter():
)
inferred_property = list(class_with_property.value.infer())[0]
self.assertTrue(isinstance(inferred_property, objects.Property))
class_parent = inferred_property.parent.parent.parent
self.assertIsInstance(class_parent, nodes.ClassDef)
self.assertFalse(
any(
isinstance(getter, objects.Property)
for getter in class_parent.locals["getter"]
)
)
self.assertTrue(hasattr(inferred_property, "args"))


Expand Down

0 comments on commit 5869ee3

Please sign in to comment.