mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-02 22:55:08 +00:00
Fix incorrect placement of leading function comment with type params (#12447)
This commit is contained in:
parent
3ace12943e
commit
ed238e0c76
5 changed files with 141 additions and 4 deletions
|
@ -224,3 +224,25 @@ class QuerySet(AltersData):
|
||||||
|
|
||||||
as_manager.queryset_only = True
|
as_manager.queryset_only = True
|
||||||
as_manager = classmethod(as_manager)
|
as_manager = classmethod(as_manager)
|
||||||
|
|
||||||
|
|
||||||
|
# Decorators
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
class Foo1: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
class Foo2(Foo1): ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
class Foo3[T]: ...
|
||||||
|
|
||||||
|
@decorator # comment
|
||||||
|
class Foo4: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
@decorato2
|
||||||
|
class Foo5: ...
|
||||||
|
|
|
@ -436,3 +436,25 @@ def function_with_variadic_generics(*args: *tuple[int],): ...
|
||||||
|
|
||||||
# Generic arguments (PEP 695)
|
# Generic arguments (PEP 695)
|
||||||
def func[T](lotsoflongargs: T, lotsoflongargs2: T, lotsoflongargs3: T, lotsoflongargs4: T, lotsoflongargs5: T) -> T: ...
|
def func[T](lotsoflongargs: T, lotsoflongargs2: T, lotsoflongargs3: T, lotsoflongargs4: T, lotsoflongargs5: T) -> T: ...
|
||||||
|
|
||||||
|
|
||||||
|
# Decorators
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
def foo[S](x: S) -> S: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
def foo(x: S) -> S: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
def foo() -> S: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
@decorator2
|
||||||
|
def foo(x: S) -> S: ...
|
||||||
|
|
||||||
|
@decorator # comment
|
||||||
|
def foo(x: S) -> S: ...
|
||||||
|
|
|
@ -1076,7 +1076,7 @@ fn handle_leading_function_with_decorators_comment(comment: DecoratedComment) ->
|
||||||
|
|
||||||
let is_following_parameters = comment
|
let is_following_parameters = comment
|
||||||
.following_node()
|
.following_node()
|
||||||
.is_some_and(|node| node.is_parameters());
|
.is_some_and(|node| node.is_parameters() || node.is_type_params());
|
||||||
|
|
||||||
if comment.line_position().is_own_line() && is_preceding_decorator && is_following_parameters {
|
if comment.line_position().is_own_line() && is_preceding_decorator && is_following_parameters {
|
||||||
CommentPlacement::dangling(comment.enclosing_node(), comment)
|
CommentPlacement::dangling(comment.enclosing_node(), comment)
|
||||||
|
|
|
@ -230,6 +230,28 @@ class QuerySet(AltersData):
|
||||||
|
|
||||||
as_manager.queryset_only = True
|
as_manager.queryset_only = True
|
||||||
as_manager = classmethod(as_manager)
|
as_manager = classmethod(as_manager)
|
||||||
|
|
||||||
|
|
||||||
|
# Decorators
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
class Foo1: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
class Foo2(Foo1): ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
class Foo3[T]: ...
|
||||||
|
|
||||||
|
@decorator # comment
|
||||||
|
class Foo4: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
@decorato2
|
||||||
|
class Foo5: ...
|
||||||
```
|
```
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
@ -489,7 +511,30 @@ class QuerySet(AltersData):
|
||||||
|
|
||||||
as_manager.queryset_only = True
|
as_manager.queryset_only = True
|
||||||
as_manager = classmethod(as_manager)
|
as_manager = classmethod(as_manager)
|
||||||
|
|
||||||
|
|
||||||
|
# Decorators
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
class Foo1: ...
|
||||||
|
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
class Foo2(Foo1): ...
|
||||||
|
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
class Foo3[T]: ...
|
||||||
|
|
||||||
|
|
||||||
|
@decorator # comment
|
||||||
|
class Foo4: ...
|
||||||
|
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
@decorato2
|
||||||
|
class Foo5: ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -442,6 +442,28 @@ def function_with_variadic_generics(*args: *tuple[int],): ...
|
||||||
|
|
||||||
# Generic arguments (PEP 695)
|
# Generic arguments (PEP 695)
|
||||||
def func[T](lotsoflongargs: T, lotsoflongargs2: T, lotsoflongargs3: T, lotsoflongargs4: T, lotsoflongargs5: T) -> T: ...
|
def func[T](lotsoflongargs: T, lotsoflongargs2: T, lotsoflongargs3: T, lotsoflongargs4: T, lotsoflongargs5: T) -> T: ...
|
||||||
|
|
||||||
|
|
||||||
|
# Decorators
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
def foo[S](x: S) -> S: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
def foo(x: S) -> S: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
def foo() -> S: ...
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
@decorator2
|
||||||
|
def foo(x: S) -> S: ...
|
||||||
|
|
||||||
|
@decorator # comment
|
||||||
|
def foo(x: S) -> S: ...
|
||||||
```
|
```
|
||||||
|
|
||||||
## Output
|
## Output
|
||||||
|
@ -1041,6 +1063,32 @@ def func[T](
|
||||||
lotsoflongargs4: T,
|
lotsoflongargs4: T,
|
||||||
lotsoflongargs5: T,
|
lotsoflongargs5: T,
|
||||||
) -> T: ...
|
) -> T: ...
|
||||||
|
|
||||||
|
|
||||||
|
# Decorators
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
def foo[S](x: S) -> S: ...
|
||||||
|
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
def foo(x: S) -> S: ...
|
||||||
|
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
def foo() -> S: ...
|
||||||
|
|
||||||
|
|
||||||
|
@decorator
|
||||||
|
# comment
|
||||||
|
@decorator2
|
||||||
|
def foo(x: S) -> S: ...
|
||||||
|
|
||||||
|
|
||||||
|
@decorator # comment
|
||||||
|
def foo(x: S) -> S: ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue