Skip to content

Commit 3f53e97

Browse files
joke1196sonartech
authored andcommitted
SONARPY-3524: Encode self type in TypeVar kind from typeshed to protobuf (#663)
GitOrigin-RevId: c922c1b9578d323b36e5f39c7801c8354e1976f7
1 parent 8552531 commit 3f53e97

File tree

607 files changed

+12711
-12683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

607 files changed

+12711
-12683
lines changed

python-frontend/src/main/java/org/sonar/python/index/TypeAnnotationDescriptor.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,14 @@ public class TypeAnnotationDescriptor {
2626
TypeKind kind;
2727
List<TypeAnnotationDescriptor> args;
2828
String fullyQualifiedName;
29+
Boolean isSelf;
2930

30-
public TypeAnnotationDescriptor(String prettyPrintedName, TypeKind kind, List<TypeAnnotationDescriptor> args, @Nullable String fullyQualifiedName) {
31+
public TypeAnnotationDescriptor(String prettyPrintedName, TypeKind kind, List<TypeAnnotationDescriptor> args, @Nullable String fullyQualifiedName, Boolean isSelf) {
3132
this.prettyPrintedName = prettyPrintedName;
3233
this.kind = kind;
3334
this.args = args;
3435
this.fullyQualifiedName = fullyQualifiedName;
36+
this.isSelf = isSelf;
3537
}
3638

3739
public String prettyPrintedName() {
@@ -51,6 +53,10 @@ public String fullyQualifiedName() {
5153
return fullyQualifiedName;
5254
}
5355

56+
public Boolean isSelf(){
57+
return isSelf;
58+
}
59+
5460
public enum TypeKind {
5561
INSTANCE,
5662
UNION,

python-frontend/src/main/java/org/sonar/python/semantic/v2/converter/TypeAnnotationToPythonTypeConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public PythonType convert(ConversionContext context, TypeAnnotationDescriptor ty
7878
public static boolean filterTypeVar(TypeAnnotationDescriptor type) {
7979
return Optional.of(type)
8080
// Filtering self returning methods until the SONARPY-1472 will be solved
81-
.filter(Predicate.not(t -> t.prettyPrintedName().endsWith(".Self")))
81+
.filter(Predicate.not(TypeAnnotationDescriptor::isSelf))
8282
.map(TypeAnnotationDescriptor::fullyQualifiedName)
8383
.filter(Predicate.not(String::isEmpty))
8484
// We ignore TypeVar referencing "builtins.object" or "object" to avoid false positives

python-frontend/src/main/java/org/sonar/python/semantic/v2/typeshed/TypeSymbolToDescriptorConverter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ TypeAnnotationDescriptor convert(SymbolsProtos.Type type) {
3232
type.getPrettyPrintedName(),
3333
kind,
3434
args,
35-
normalizedFqn);
35+
normalizedFqn,
36+
type.getIsSelf());
3637
}
3738
}

python-frontend/src/main/protobuf/symbols.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ message Type {
3535
TypeKind kind = 2;
3636
repeated Type args = 3;
3737
optional string fully_qualified_name = 4;
38+
bool is_self = 5;
3839
}
3940

4041
message ParameterSymbol {

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torch.nn.modules.module.protobuf

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ $torch.nn.modules.module._WrappedHook"$torch.nn.modules.module._WrappedHook*
2626
with_module0torch.nn.modules.module._WrappedHook.with_module
2727
builtins.bool"builtins.boolr>
2828
module+torch.nn.modules.module._WrappedHook.module
29-
Any�
29+
Any�
3030
Moduletorch.nn.modules.module.Module"*SonarPythonAnalyzerFakeStub.CustomStubBase*�
3131
__init__'torch.nn.modules.module.Module.__init__"
3232
None*J
@@ -423,14 +423,14 @@ extra_repr)torch.nn.modules.module.Module.extra_repr"
423423
args
424424
Any*
425425
kwargs
426-
Any2�
427-
to!torch.nn.modules.module.Module.to�
428-
to!torch.nn.modules.module.Module.to"�
426+
Any2�
427+
to!torch.nn.modules.module.Module.to�
428+
to!torch.nn.modules.module.Module.to"�
429429
#torch.nn.modules.module.Module.Self@
430-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*�
431-
self�
430+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*�
431+
self�
432432
#torch.nn.modules.module.Module.Self@
433-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*4
433+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*4
434434
device&
435435
Union[Any,None]
436436
Any
@@ -440,23 +440,23 @@ extra_repr)torch.nn.modules.module.Module.extra_repr"
440440
torch.dtype" torch.dtype
441441
None *2
442442
non_blocking
443-
builtins.bool"builtins.bool 0:typing.overloadX�
444-
to!torch.nn.modules.module.Module.to"�
443+
builtins.bool"builtins.bool 0:typing.overloadX�
444+
to!torch.nn.modules.module.Module.to"�
445445
#torch.nn.modules.module.Module.Self@
446-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*�
447-
self�
446+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*�
447+
self�
448448
#torch.nn.modules.module.Module.Self@
449-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*%
449+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*%
450450
dtype
451451
torch.dtype" torch.dtype*2
452452
non_blocking
453-
builtins.bool"builtins.bool 0:typing.overloadX�
454-
to!torch.nn.modules.module.Module.to"�
453+
builtins.bool"builtins.bool 0:typing.overloadX�
454+
to!torch.nn.modules.module.Module.to"�
455455
#torch.nn.modules.module.Module.Self@
456-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*�
457-
self�
456+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*�
457+
self�
458458
#torch.nn.modules.module.Module.Self@
459-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*(
459+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*(
460460
tensor
461461
torch.Tensor" torch.Tensor*2
462462
non_blocking

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torch.nn.modules.protobuf

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1745,7 +1745,7 @@ $torch.nn.modules.loss.SoftMarginLoss"$torch.nn.modules.loss.SoftMarginLoss*
17451745
args
17461746
Any*
17471747
kwargs
1748-
Any�
1748+
Any�
17491749
Moduletorch.nn.modules.module.Module"*SonarPythonAnalyzerFakeStub.CustomStubBase*�
17501750
__init__'torch.nn.modules.module.Module.__init__"
17511751
None*J
@@ -2142,14 +2142,14 @@ extra_repr)torch.nn.modules.module.Module.extra_repr"
21422142
args
21432143
Any*
21442144
kwargs
2145-
Any2�
2146-
to!torch.nn.modules.module.Module.to�
2147-
to!torch.nn.modules.module.Module.to"�
2145+
Any2�
2146+
to!torch.nn.modules.module.Module.to�
2147+
to!torch.nn.modules.module.Module.to"�
21482148
#torch.nn.modules.module.Module.Self@
2149-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*�
2150-
self�
2149+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*�
2150+
self�
21512151
#torch.nn.modules.module.Module.Self@
2152-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*4
2152+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*4
21532153
device&
21542154
Union[Any,None]
21552155
Any
@@ -2159,23 +2159,23 @@ extra_repr)torch.nn.modules.module.Module.extra_repr"
21592159
torch.dtype" torch.dtype
21602160
None *2
21612161
non_blocking
2162-
builtins.bool"builtins.bool 0:typing.overloadX�
2163-
to!torch.nn.modules.module.Module.to"�
2162+
builtins.bool"builtins.bool 0:typing.overloadX�
2163+
to!torch.nn.modules.module.Module.to"�
21642164
#torch.nn.modules.module.Module.Self@
2165-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*�
2166-
self�
2165+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*�
2166+
self�
21672167
#torch.nn.modules.module.Module.Self@
2168-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*%
2168+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*%
21692169
dtype
21702170
torch.dtype" torch.dtype*2
21712171
non_blocking
2172-
builtins.bool"builtins.bool 0:typing.overloadX�
2173-
to!torch.nn.modules.module.Module.to"�
2172+
builtins.bool"builtins.bool 0:typing.overloadX�
2173+
to!torch.nn.modules.module.Module.to"�
21742174
#torch.nn.modules.module.Module.Self@
2175-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*�
2176-
self�
2175+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*�
2176+
self�
21772177
#torch.nn.modules.module.Module.Self@
2178-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*(
2178+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*(
21792179
tensor
21802180
torch.Tensor" torch.Tensor*2
21812181
non_blocking

python-frontend/src/main/resources/org/sonar/python/types/custom_protobuf/torch.nn.protobuf

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1745,7 +1745,7 @@ $torch.nn.modules.loss.SoftMarginLoss"$torch.nn.modules.loss.SoftMarginLoss*
17451745
args
17461746
Any*
17471747
kwargs
1748-
Any�
1748+
Any�
17491749
Moduletorch.nn.modules.module.Module"*SonarPythonAnalyzerFakeStub.CustomStubBase*�
17501750
__init__'torch.nn.modules.module.Module.__init__"
17511751
None*J
@@ -2142,14 +2142,14 @@ extra_repr)torch.nn.modules.module.Module.extra_repr"
21422142
args
21432143
Any*
21442144
kwargs
2145-
Any2�
2146-
to!torch.nn.modules.module.Module.to�
2147-
to!torch.nn.modules.module.Module.to"�
2145+
Any2�
2146+
to!torch.nn.modules.module.Module.to�
2147+
to!torch.nn.modules.module.Module.to"�
21482148
#torch.nn.modules.module.Module.Self@
2149-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*�
2150-
self�
2149+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*�
2150+
self�
21512151
#torch.nn.modules.module.Module.Self@
2152-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*4
2152+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*4
21532153
device&
21542154
Union[Any,None]
21552155
Any
@@ -2159,23 +2159,23 @@ extra_repr)torch.nn.modules.module.Module.extra_repr"
21592159
torch.dtype" torch.dtype
21602160
None *2
21612161
non_blocking
2162-
builtins.bool"builtins.bool 0:typing.overloadX�
2163-
to!torch.nn.modules.module.Module.to"�
2162+
builtins.bool"builtins.bool 0:typing.overloadX�
2163+
to!torch.nn.modules.module.Module.to"�
21642164
#torch.nn.modules.module.Module.Self@
2165-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*�
2166-
self�
2165+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*�
2166+
self�
21672167
#torch.nn.modules.module.Module.Self@
2168-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*%
2168+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*%
21692169
dtype
21702170
torch.dtype" torch.dtype*2
21712171
non_blocking
2172-
builtins.bool"builtins.bool 0:typing.overloadX�
2173-
to!torch.nn.modules.module.Module.to"�
2172+
builtins.bool"builtins.bool 0:typing.overloadX�
2173+
to!torch.nn.modules.module.Module.to"�
21742174
#torch.nn.modules.module.Module.Self@
2175-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*�
2176-
self�
2175+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*�
2176+
self�
21772177
#torch.nn.modules.module.Module.Self@
2178-
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module*(
2178+
torch.nn.modules.module.Module"torch.nn.modules.module.Module"torch.nn.modules.module.Module(*(
21792179
tensor
21802180
torch.Tensor" torch.Tensor*2
21812181
non_blocking

python-frontend/src/main/resources/org/sonar/python/types/stdlib_protobuf/_collections_abc.protobuf

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1106,7 +1106,7 @@ typing._VT"
11061106
kwargsC
11071107

11081108
typing._VT"
1109-
builtins.object"builtins.object"builtins.object0:typing.overloadX"38"39"310"311"312"313"314Pj38j39j310j311j312j313j314�'
1109+
builtins.object"builtins.object"builtins.object0:typing.overloadX"38"39"310"311"312"313"314Pj38j39j310j311j312j313j314�'
11101110
MutableSequencetyping.MutableSequence"typing.Sequence*�
11111111
inserttyping.MutableSequence.insert"
11121112
None*�
@@ -1167,16 +1167,16 @@ typing._VT"
11671167
builtins.object"builtins.object"builtins.object"typing.MutableSequence*M
11681168
valueB
11691169
typing._T"
1170-
builtins.object"builtins.object"builtins.objectz38z39z310z311z312z313z314*�
1171-
__iadd__typing.MutableSequence.__iadd__"�
1170+
builtins.object"builtins.object"builtins.objectz38z39z310z311z312z313z314*�
1171+
__iadd__typing.MutableSequence.__iadd__"�
11721172
typing.MutableSequence.Self
11731173
!typing.MutableSequence[typing._T]B
11741174
typing._T"
1175-
builtins.object"builtins.object"builtins.object"typing.MutableSequence"typing.MutableSequence*��
1175+
builtins.object"builtins.object"builtins.object"typing.MutableSequence"typing.MutableSequence(*��
11761176
typing.MutableSequence.Self
11771177
!typing.MutableSequence[typing._T]B
11781178
typing._T"
1179-
builtins.object"builtins.object"builtins.object"typing.MutableSequence"typing.MutableSequence*sq
1179+
builtins.object"builtins.object"builtins.object"typing.MutableSequence"typing.MutableSequence(*sq
11801180
typing.Iterable[typing._T]B
11811181
typing._T"
11821182
builtins.object"builtins.object"builtins.object"typing.Iterablez38z39z310z311z312z313z3142�
@@ -1226,7 +1226,7 @@ typing._VT"
12261226
!typing.MutableSequence[typing._T]B
12271227
typing._T"
12281228
builtins.object"builtins.object"builtins.object"typing.MutableSequence*"
1229-
builtins.slice"builtins.slice0:typing.overload:abc.abstractmethod@X"38"39"310"311"312"313"314Pj38j39j310j311j312j313j314�
1229+
builtins.slice"builtins.slice0:typing.overload:abc.abstractmethod@X"38"39"310"311"312"313"314Pj38j39j310j311j312j313j314�
12301230

12311231
MutableSettyping.MutableSet"typing.AbstractSet*�
12321232
addtyping.MutableSet.add"
@@ -1268,51 +1268,51 @@ MutableSettyping.MutableSet"typing.AbstractSet*
12681268
builtins.object"builtins.object"builtins.object"typing.MutableSet*M
12691269
valueB
12701270
typing._T"
1271-
builtins.object"builtins.object"builtins.objectz38z39z310z311z312z313z314*�
1272-
__ior__typing.MutableSet.__ior__"�
1271+
builtins.object"builtins.object"builtins.objectz38z39z310z311z312z313z314*�
1272+
__ior__typing.MutableSet.__ior__"�
12731273
typing.MutableSet.Selfu
12741274
typing.MutableSet[typing._T]B
12751275
typing._T"
1276-
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet*��
1276+
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet(*��
12771277
typing.MutableSet.Selfu
12781278
typing.MutableSet[typing._T]B
12791279
typing._T"
1280-
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet*yw
1280+
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet(*yw
12811281
typing.AbstractSet[typing._T]B
12821282
typing._T"
1283-
builtins.object"builtins.object"builtins.object"typing.AbstractSetz38z39z310z311z312z313z314*�
1284-
__iand__typing.MutableSet.__iand__"�
1283+
builtins.object"builtins.object"builtins.object"typing.AbstractSetz38z39z310z311z312z313z314*�
1284+
__iand__typing.MutableSet.__iand__"�
12851285
typing.MutableSet.Selfu
12861286
typing.MutableSet[typing._T]B
12871287
typing._T"
1288-
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet*��
1288+
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet(*��
12891289
typing.MutableSet.Selfu
12901290
typing.MutableSet[typing._T]B
12911291
typing._T"
1292-
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet*86
1292+
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet(*86
12931293
typing.AbstractSet[Any]
1294-
Any"typing.AbstractSetz38z39z310z311z312z313z314*�
1295-
__ixor__typing.MutableSet.__ixor__"�
1294+
Any"typing.AbstractSetz38z39z310z311z312z313z314*�
1295+
__ixor__typing.MutableSet.__ixor__"�
12961296
typing.MutableSet.Selfu
12971297
typing.MutableSet[typing._T]B
12981298
typing._T"
1299-
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet*��
1299+
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet(*��
13001300
typing.MutableSet.Selfu
13011301
typing.MutableSet[typing._T]B
13021302
typing._T"
1303-
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet*yw
1303+
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet(*yw
13041304
typing.AbstractSet[typing._T]B
13051305
typing._T"
1306-
builtins.object"builtins.object"builtins.object"typing.AbstractSetz38z39z310z311z312z313z314*�
1307-
__isub__typing.MutableSet.__isub__"�
1306+
builtins.object"builtins.object"builtins.object"typing.AbstractSetz38z39z310z311z312z313z314*�
1307+
__isub__typing.MutableSet.__isub__"�
13081308
typing.MutableSet.Selfu
13091309
typing.MutableSet[typing._T]B
13101310
typing._T"
1311-
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet*��
1311+
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet(*��
13121312
typing.MutableSet.Selfu
13131313
typing.MutableSet[typing._T]B
13141314
typing._T"
1315-
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet*86
1315+
builtins.object"builtins.object"builtins.object"typing.MutableSet"typing.MutableSet(*86
13161316
typing.AbstractSet[Any]
13171317
Any"typing.AbstractSetz38z39z310z311z312z313z314Pj38j39j310j311j312j313j314�
13181318

0 commit comments

Comments
 (0)