Alan052918 / ccdetector

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ccdetector

A static analysis tool depending on GumTree to detect 14 types of source code refactoring changes.

This is my undergraduate thesis project, please access the thesis report at Automatic Detection of Python API Changes.

Supported Changes

Method renaming

Adding or removing the leading underscore in Python method names effects their accessibility, while def foo(): is public, def _foo(): is weakly private.

  • public to weakly private
  • weakly private to public
  • no accessibility switch (normal update)

Method Relocation

  • Method insertion
  • Method removal
  • Method relocation

Parameter Changes

  • Parameter insertion
  • Parameter removal
  • Parameter update
    • normal update
    • cls/self switch

Parameter Default Value Changes

  • Parameter default value addition
  • Parameter default value removal
  • Parameter default value update

Return Type Changes

  • Return type hint addition
  • Return type hint removal
  • Return type hint update

Test Cases

Currently only core is implemented, test cases in core/src/test/resources.

About


Languages

Language:Java 87.1%Language:Python 12.9%