| package org.checkerframework.checker.lock; |
| |
| import org.checkerframework.common.basetype.BaseTypeChecker; |
| |
| // TODO: Here is a list of nice-to-have features/tests but not critical to release the Lock Checker: |
| |
| // Add a warning if a user annotates a static field with @GuardedBy("this") instead of |
| // @GuardedBy("<class name>.class") |
| |
| // Add a test that @GuardedBy("<class name>.class") is never ambiguous given two classes with the |
| // same name in two different packages. |
| |
| // In LockStore.updateForMethodCall, calling a method annotated with @MayReleaseLocks should not |
| // always cause local variables' refinement to be reset to @GuardedByUnknown. |
| // The current workaround is to explicitly annotate the local variable with the appropriate |
| // annotation in the @GuardedBy hierarchy. |
| |
| // Would it be a useful feature for the Lock Checker to warn about missing unlock calls when there |
| // is a call to .lock() in a method? |
| // Or is this a common pattern to lock in one method and unlock in a different one? |
| |
| /** |
| * The Lock Checker. |
| * |
| * @checker_framework.manual #lock-checker Lock Checker |
| */ |
| public class LockChecker extends BaseTypeChecker {} |