Deprecate Object used as Value
Passing interfaces by value is deprecated as of Ice 3.7, however, Object remains a non-deprecated way to specify Value.
For example:
module M
{
interface Intf
{
Intf f();
Object g();
}
}
only gives one deprecated diagnostic (for f). Object g() is treated like Value g() and no diagnostics is produced.
We should deprecate this usage to fully separate interfaces and classes - Object represents the base of all interfaces while Value represent the base of all classes.
Notes:
-
in a local operation,
Objectrepresents the base class for all servants and is not equivalent toValue. -
for local classes and interfaces,
LocalObjectremains the base class for both. There is noLocalValue.
Let's keep Object as an alias for Value, for compatibility with earlier versions of Slice.
@bernardnormier Can we close this?