import valuebased.classes.IValueBased;
class IVB implements IValueBased {
final IVB vb = new IVB();
{
final IVB localVb = new IVB();
final Object objectVb = new IVB();
synchronized (vb) {}
synchronized (localVb) {}
synchronized (objectVb) {}
synchronized (IValueBased.class) {}
synchronized (IVB.class) {}
f(vb);
g(vb);
}
void f(IVB vb) {
synchronized (vb) {}
}
void g(Object vb) {
synchronized (vb) {}
}
@SuppressWarnings("synchronization")
void h(IVB vb) {
synchronized (vb) {}
}
}