Safe-DS / Library-Analyzer

Analysis of Python libraries and of code that uses them.
https://library-analyzer.safeds.com
MIT License
5 stars 0 forks source link

Missing detection of @properties as instance variables #272

Closed lukarade closed 3 months ago

lukarade commented 3 months ago

Describe the bug

When an instance variable is created using a @property method, it is not added as an instance variable for its class. This leads to missing Reads and Writes for that instance variable.

To Reproduce

Example:

    @property
    def column_names(self) -> list[str]:
        return self._schema.column_names
    def _get_similar_columns(self, column_name: str) -> list[str]:
        similar_columns = []
        similarity = 0.6
        i = 0
        while i < len(self.column_names): # NOT DETECTED
            if Levenshtein.jaro_winkler(self.column_names[i], column_name) >= similarity:  # NOT DETECTED
                similar_columns.append(self.column_names[i]) # NOT DETECTED
            i += 1
            if len(similar_columns) == 4 and similarity < 0.9:
                similarity += 0.1
                similar_columns = []
                i = 0

        return similar_columns

Expected behavior

These missing instance accesses should be detected.

Screenshots (optional)

No response

Additional Context (optional)

No response