private string AccessFlagsAsString(AccessFlags accessFlags) { string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Interface) ? "interface " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Abstract) ? "abstract " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Annotation) ? "annotation " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Enum) ? "enum " : string.Empty; return result.Trim(); }
private string AccessFlagsAsString(AccessFlags accessFlags) { string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Interface) ? "interface " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Abstract) ? "abstract " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Annotation) ? "annotation " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Enum) ? "enum " : string.Empty; return(result.Trim()); }
private string AccessFlagsAsString(AccessFlags accessFlags) { string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Volatile) ? "volatile " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Transient) ? "transient " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Enum) ? "enum " : string.Empty; return result.Trim(); }
private string AccessFlagsAsString(AccessFlags accessFlags) { string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Volatile) ? "volatile " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Transient) ? "transient " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Enum) ? "enum " : string.Empty; return(result.Trim()); }
private string AccessFlagsAsString(AccessFlags accessFlags) { string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Synchronized) ? "synchronized " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Bridge) ? "bridge " : string.Empty; result += accessFlags.HasFlag(AccessFlags.VarArgs) ? "varargs " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Native) ? "native " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Abstract) ? "abstract " : string.Empty; result += accessFlags.HasFlag(AccessFlags.StrictFp) ? "strictfp " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Constructor) ? "constructor " : string.Empty; result += accessFlags.HasFlag(AccessFlags.DeclaredSynchronized) ? "synchronized " : string.Empty; return result.Trim(); }
public ParameterInfo[] GetParameters() { if (parameters != null) { return(parameters); } int _; parameters = GetParametersFromDescriptor(out _).ToArray(); var locals = GetLocalVariables(); var enumCtor = IsConstructor && DeclaringType.IsEnum; if (locals != null) { var names = locals.LocalVariables.Where(p => p.StartPC == 0).ToList(); int start = 0; if (names.Count != parameters.Length && !AccessFlags.HasFlag(MethodAccessFlags.Static) && names.Count > start && names [start].Descriptor == DeclaringType.FullJniName) { start++; // skip `this` parameter } if (!DeclaringType.IsStatic && names.Count > start && (parameters.Length == 0 || parameters [0].Type.BinaryName != names [start].Descriptor)) { start++; // JDK 8? } if (!AccessFlags.HasFlag(MethodAccessFlags.Synthetic) && ((names.Count - start) != parameters.Length) && !enumCtor) { Log.Debug("class-parse: method {0}.{1}{2}: " + "Local variables array has {3} entries ('{4}'); descriptor has {5} entries!", DeclaringType.ThisClass.Name.Value, Name, Descriptor, names.Count - start, Attributes.Get <CodeAttribute>().Attributes.Get <LocalVariableTableAttribute> (), parameters.Length); } int max = Math.Min(parameters.Length, names.Count - start); for (int i = 0; i < max; ++i) { parameters [i].Name = names [start + i].Name; if (parameters [i].Type.BinaryName != names [start + i].Descriptor) { Log.Debug("class-parse: method {0}.{1}{2}: " + "Local variable type descriptor mismatch! Got '{3}'; expected '{4}'.", DeclaringType.ThisClass.Name.Value, Name, Descriptor, parameters [i].Type.BinaryName, names [start + i].Descriptor); } } } var sig = GetSignature(); if (sig != null) { if ((sig.Parameters.Count != parameters.Length) && !enumCtor) { Log.Debug("class-parse: method {0}.{1}{2}: " + "Signature ('{3}') has {4} entries; Descriptor '{5}' has {6} entries!", DeclaringType.ThisClass.Name.Value, Name, Descriptor, Attributes.Get <SignatureAttribute>(), sig.Parameters.Count, Descriptor, parameters.Length); } int max = Math.Min(parameters.Length, sig.Parameters.Count); for (int i = 0; i < max; ++i) { parameters [i].Type.TypeSignature = sig.Parameters [i]; } } UpdateParametersFromMethodParametersAttribute(parameters); return(parameters); }
private string AccessFlagsAsString(AccessFlags accessFlags) { string result = accessFlags.HasFlag(AccessFlags.Public) ? "public " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Private) ? "private " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Protected) ? "protected " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Static) ? "static " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Final) ? "final " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Synchronized) ? "synchronized " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Bridge) ? "bridge " : string.Empty; result += accessFlags.HasFlag(AccessFlags.VarArgs) ? "varargs " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Native) ? "native " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Abstract) ? "abstract " : string.Empty; result += accessFlags.HasFlag(AccessFlags.StrictFp) ? "strictfp " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Synthetic) ? "synthetic " : string.Empty; result += accessFlags.HasFlag(AccessFlags.Constructor) ? "constructor " : string.Empty; result += accessFlags.HasFlag(AccessFlags.DeclaredSynchronized) ? "synchronized " : string.Empty; return(result.Trim()); }