Skip to content

Commit 29e98b3

Browse files
SONARPY-21194 Prevent the creation of ObjectType[UnknownType] when converting VariableDescriptor
1 parent 1e93b5c commit 29e98b3

File tree

2 files changed

+4
-5
lines changed

2 files changed

+4
-5
lines changed

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,14 @@
2424
import org.sonar.python.index.VariableDescriptor;
2525
import org.sonar.python.types.v2.ObjectType;
2626
import org.sonar.python.types.v2.PythonType;
27-
import org.sonar.python.types.v2.TypeWrapper;
2827

2928
public class VariableDescriptorToPythonTypeConverter implements DescriptorToPythonTypeConverter {
3029

3130
public PythonType convert(ConversionContext ctx, VariableDescriptor from) {
32-
var typeWrapper = Optional.ofNullable(from.annotatedType())
31+
return Optional.ofNullable(from.annotatedType())
3332
.map(fqn -> ctx.lazyTypesContext().getOrCreateLazyTypeWrapper(fqn))
34-
.orElse(TypeWrapper.UNKNOWN_TYPE_WRAPPER);
35-
return new ObjectType(typeWrapper);
33+
.map(t -> (PythonType) new ObjectType(t))
34+
.orElse(PythonType.UNKNOWN);
3635
}
3736

3837
@Override

python-frontend/src/test/java/org/sonar/python/types/v2/UnresolvedImportTypeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ void imported_unknown2() {
6666
var etreeType = ((ModuleType) ((ExpressionStatement) fileInput.statements().statements().get(1)).expressions().get(0).typeV2());
6767
assertThat(etreeType.name()).isEqualTo("xml");
6868
assertThat(etreeType.resolveSubmodule("etree")).isEmpty();
69-
assertThat(etreeType.resolveMember("etree").get().unwrappedType()).isInstanceOf(UnknownType.UnknownTypeImpl.class);
69+
assertThat(etreeType.resolveMember("etree").get()).isInstanceOf(UnknownType.UnknownTypeImpl.class);
7070
}
7171

7272
@Test

0 commit comments

Comments
 (0)