Re: [Vala] sqlite needs more love



Let's fill!!1

Having a look inside vala/ I have found that some of these attributes of your list
does not exist (are not parsed by valac).

Here's a fast overview of each one. Would be good to upload this documentation to
the wiki when finished.

      [Diagnostics]

        * print function argument values.
        From valasemanticanalyzer.vala:

                bool diag = (msym.get_attribute ("Diagnostics") != null);

                if (diag && prev_arg != null) {
                        var format_arg = prev_arg;
                        if (format_arg is LiteralExpression) {
                                var format_lit = (StringLiteral) ((LiteralExpression) format_arg).literal;
                                format_lit.value = "\"%s:%d: %s".printf (expr.source_reference.file.filename,
                                               expr.source_reference.first_line, format_lit.value.offset (1));
                        }
                }


      [PrintfLike]

        * not found *

      [Flags]

        * not found *

      [ErrorDomain]

        * ???

      [Import ()]

            The implementation of this function is external to Vala (C?)
          
      [InstanceByReference]

        * not found * 

      [InstanceLast ()]

          valamethod.vala
            * Specifies whether the instance pointer should be passed as the first
            * or as the last argument in C code. Defaults to first.

      [PlusOperator ()]

        * not found * 

      [PrintfFormat]

            Specifies whether this method expects printf-style format arguments.

      [SimpleType]

            valastruct.vala
             * Returns whether this struct is a simple type, i.e. whether
             * instances are passed by value.

      [ReturnsModifiedPointer ()]

            valamethod.vala
             * Specifies whether the C method returns a new instance pointer which
             * may be different from the previous instance pointer. Only valid for
             * imported methods.

      [IntegerType (rank = 1)]
      [FloatingType (rank = 1)]


        Type checking attribute? When this have to be used?

            valastruct.vala says:
        
        private void process_integer_type_attribute (Attribute! a) {
                integer_type = true;
                if (a.has_argument ("rank")) {
                        rank = a.get_integer ("rank");
                }
        }

        private void process_floating_type_attribute (Attribute! a) {
                floating_type = true;
                if (a.has_argument ("rank")) {
                        rank = a.get_integer ("rank");
                }
        }


      [NoArrayLength]

            Convert (string[]) into (char **) instead of (int len, char **)

      [NoAccessorMethod]

            * Specifies whether the implementation of this property does not
            * provide getter/setter methods.

      [HasEmitter]

            * Specifies whether this signal has an emitter wrapper function.
                What does this means?


--pancake



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]