Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed CountRule and ClassPerFileRule #23

Merged
merged 1 commit into from
Dec 17, 2015

Conversation

Teloah
Copy link
Contributor

@Teloah Teloah commented Dec 16, 2015

ClassPerFileRule should mark all classes after the first one as violations, but it ignored every other class. It was because the counter was reset after adding a violation.
It worked like this:

TMyClass1 <- the counter increases to 1
TMyClass2 <- a violation is added, the counter resets to 0
TMyClass3 <- the counter increases to 1
TMyClass4 <- a violation is added, the counter resets to 0
etc.

After setting reset = false; number of violations suddenly increased to huge numbers. For a simple test with 5 classes, 21 violation was registered instead of 4. It was because of a bug in CountRule. After the limit was exceeced, a violation was added to every node, not just to those that match the search criteria. So I turned shouldCheck into a guard clause that returns immediately if the node does not match.

Also I removed Object dataRef instance variable from CountRule, because it seems unused.

ClassPerFileRule should mark all classes after the first one as
violations, but it ignored every other class. It was because counter was
reset after adding a violation. It worked like this:
TMyClass1 <- counter increases to 1
TMyClass2 <- violation is added, counter resets to 0
TMyClass3 <- counter increases to 1
TMyClass4 <- violation is added, counter resets to 0
etc.

After setting "reset = false;" number of violations suddenly increased
to huge numbers. For a simple test with 5 classes, 21 violation was
registered instead of 4. It was because of a bug in CountRule. After the
limit was exceeced, a violation was added to every node, not just to
those that match the search criteria. So I turned shouldCheck into a
guard clause that returns immediately if the node does not match.

Also I removed "Object dataRef" instance variable from CountRule,
because it seems unused.
@fabriciocolombo
Copy link
Owner

Good catch. Thank you.

fabriciocolombo added a commit that referenced this pull request Dec 17, 2015
Fixed CountRule and ClassPerFileRule
@fabriciocolombo fabriciocolombo merged commit ba98e4f into fabriciocolombo:master Dec 17, 2015
@Teloah Teloah deleted the bugfix-countrule branch December 17, 2015 10:21
@fabriciocolombo fabriciocolombo added this to the 0.3.3 milestone Dec 18, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants