+2009-01-31 Jürg Billeter <j@bitron.ch>
+
+ * vala/valaflowanalyzer.vala:
+ * vala/valasymbol.vala:
+
+ Report unused internal methods
+
+ * gobject/valaccodearraymodule.vala:
+ * gobject/valaccodeassignmentmodule.vala:
+ * gobject/valaccodebasemodule.vala:
+ * gobject/valaccodecontrolflowmodule.vala:
+ * gobject/valaccodedelegatemodule.vala:
+ * gobject/valaccodememberaccessmodule.vala:
+ * gobject/valaccodemethodcallmodule.vala:
+ * gobject/valaccodemethodmodule.vala:
+ * gobject/valaccodestructmodule.vala:
+ * gobject/valadbusclientmodule.vala:
+ * gobject/valadbusmodule.vala:
+ * gobject/valadbusservermodule.vala:
+ * gobject/valagasyncmodule.vala:
+ * gobject/valagerrormodule.vala:
+ * gobject/valagobjectmodule.vala:
+ * gobject/valagsignalmodule.vala:
+ * gobject/valagtypemodule.vala:
+
+ Mark modules as internal
+
2009-01-30 Jürg Billeter <j@bitron.ch>
* vala/valanamespace.vala:
using Gee;
-public class Vala.CCodeArrayModule : CCodeMethodCallModule {
+class Vala.CCodeArrayModule : CCodeMethodCallModule {
int next_array_dup_id = 0;
int next_array_add_id = 0;
/**
* The link between an assignment and generated code.
*/
-public class Vala.CCodeAssignmentModule : CCodeMemberAccessModule {
+class Vala.CCodeAssignmentModule : CCodeMemberAccessModule {
public CCodeAssignmentModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
/**
* Code visitor generating C Code.
*/
-public class Vala.CCodeBaseModule : CCodeModule {
+class Vala.CCodeBaseModule : CCodeModule {
public CodeContext context { get; set; }
public Symbol root_symbol;
public CCodeEnum prop_enum;
public CCodeEnum cenum;
public CCodeFunction function;
- public CCodeBlock block;
// code nodes to be inserted before the current statement
// used by async method calls in coroutines
using GLib;
using Gee;
-public class Vala.CCodeControlFlowModule : CCodeMethodModule {
+class Vala.CCodeControlFlowModule : CCodeMethodModule {
public CCodeControlFlowModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
/**
* The link between an assignment and generated code.
*/
-public class Vala.CCodeDelegateModule : CCodeArrayModule {
+class Vala.CCodeDelegateModule : CCodeArrayModule {
public CCodeDelegateModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
using GLib;
-public class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
+class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
public CCodeMemberAccessModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
using GLib;
using Gee;
-public class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
+class Vala.CCodeMethodCallModule : CCodeAssignmentModule {
public CCodeMethodCallModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
/**
* The link between a method and generated code.
*/
-public class Vala.CCodeMethodModule : CCodeStructModule {
+class Vala.CCodeMethodModule : CCodeStructModule {
public CCodeMethodModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
using GLib;
-public class Vala.CCodeStructModule : CCodeBaseModule {
+class Vala.CCodeStructModule : CCodeBaseModule {
public CCodeStructModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
/**
* The link between a dynamic method and generated code.
*/
-public class Vala.DBusClientModule : DBusModule {
+class Vala.DBusClientModule : DBusModule {
int dynamic_property_id;
public DBusClientModule (CCodeGenerator codegen, CCodeModule? next) {
* Jürg Billeter <j@bitron.ch>
*/
-public class Vala.DBusModule : GAsyncModule {
+class Vala.DBusModule : GAsyncModule {
struct BasicTypeInfo {
public weak string signature;
public weak string type_name;
/**
* The link between a dynamic method and generated code.
*/
-public class Vala.DBusServerModule : DBusClientModule {
+class Vala.DBusServerModule : DBusClientModule {
public DBusServerModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
using GLib;
using Gee;
-public class Vala.GAsyncModule : GSignalModule {
+class Vala.GAsyncModule : GSignalModule {
public GAsyncModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
using GLib;
using Gee;
-public class Vala.GErrorModule : CCodeDelegateModule {
+class Vala.GErrorModule : CCodeDelegateModule {
private int current_try_id = 0;
private int next_try_id = 0;
using Gee;
-public class Vala.GObjectModule : GTypeModule {
+class Vala.GObjectModule : GTypeModule {
int dynamic_property_id;
int signal_wrapper_id;
using GLib;
-public class Vala.GSignalModule : GObjectModule {
+class Vala.GSignalModule : GObjectModule {
public GSignalModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
using GLib;
-public class Vala.GTypeModule : GErrorModule {
+class Vala.GTypeModule : GErrorModule {
public GTypeModule (CCodeGenerator codegen, CCodeModule? next) {
base (codegen, next);
}
}
public override void visit_field (Field f) {
- if (f.access != SymbolAccessibility.PUBLIC
- && f.access != SymbolAccessibility.PROTECTED
- && !f.used) {
+ if (f.is_library_internal_symbol () && !f.used) {
Report.warning (f.source_reference, "field `%s' never used".printf (f.get_full_name ()));
}
}
public override void visit_method (Method m) {
- if (m.access != SymbolAccessibility.PUBLIC
- && m.access != SymbolAccessibility.PROTECTED
- && !m.used && !m.entry_point) {
+ if (m.is_library_internal_symbol () && !m.used && !m.entry_point
+ && !m.overrides && (m.base_interface_method == null || m.base_interface_method == m)
+ && !(m is CreationMethod)) {
Report.warning (m.source_reference, "method `%s' never used".printf (m.get_full_name ()));
}
return false;
}
+ public bool is_library_internal_symbol () {
+ for (Symbol sym = this; null != sym; sym = sym.parent_symbol) {
+ if (sym.access == SymbolAccessibility.PRIVATE
+ || sym.access == SymbolAccessibility.INTERNAL) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
public Scope scope {
get { return _scope; }
}