go: github.com/golang/go/src/cmd/compile/internal/logopt Index | Files

package logopt

import "github.com/golang/go/src/cmd/compile/internal/logopt"


Package Files

escape.go log_opts.go


const (
    None  logFormat = iota
    Json0           // version 0 for LSP 3.14, 3.15; future versions of LSP may change the format and the compiler may need to support both as clients are updated.


var Format = None

func Enabled Uses

func Enabled() bool

func FlushLoggedOpts Uses

func FlushLoggedOpts(ctxt *obj.Link, slashPkgPath string)

FlushLoggedOpts flushes all the accumulated optimization log entries.

func LogJsonOption Uses

func LogJsonOption(flagValue string)

func LogOpt Uses

func LogOpt(pos src.XPos, what, pass, fname string, args ...interface{})

type Diagnostic Uses

type Diagnostic struct {

    /*Range defined:
     * The range at which the message applies
    Range Range `json:"range"`

    /*Severity defined:
     * The diagnostic's severity. Can be omitted. If omitted it is up to the
     * client to interpret diagnostics as error, warning, info or hint.
    Severity DiagnosticSeverity `json:"severity,omitempty"` // always SeverityInformation for optimizer logging.

    /*Code defined:
     * The diagnostic's code, which usually appear in the user interface.
    Code string `json:"code,omitempty"` // LSP uses 'number | string' = gopls interface{}, but only string here, e.g. "boundsCheck", "nilcheck", etc.

    /*Source defined:
     * A human-readable string describing the source of this
     * diagnostic, e.g. 'typescript' or 'super lint'. It usually
     * appears in the user interface.
    Source string `json:"source,omitempty"` // "go compiler"

    /*Message defined:
     * The diagnostic's message. It usually appears in the user interface
    Message string `json:"message"` // sometimes used, provides additional information.

    /*Tags defined:
     * Additional metadata about the diagnostic.
    Tags []DiagnosticTag `json:"tags,omitempty"` // always empty for logging optimizations.

    /*RelatedInformation defined:
     * An array of related diagnostic information, e.g. when symbol-names within
     * a scope collide all definitions can be marked via this property.
    RelatedInformation []DiagnosticRelatedInformation `json:"relatedInformation,omitempty"`

Diagnostic defined:

* Represents a diagnostic, such as a compiler error or warning. Diagnostic objects
* are only valid in the scope of a resource.

type DiagnosticRelatedInformation Uses

type DiagnosticRelatedInformation struct {

    /*Location defined:
     * The location of this related diagnostic information.
    Location Location `json:"location"`

    /*Message defined:
     * The message of this related diagnostic information.
    Message string `json:"message"`

DiagnosticRelatedInformation defined: * Represents a related message and source code location for a diagnostic. This should be * used to point to code locations that cause or related to a diagnostics, e.g when duplicating * a symbol in a scope.

type DiagnosticSeverity Uses

type DiagnosticSeverity uint

DiagnosticSeverity defines constants

const (
    /*SeverityInformation defined:
     * Reports an information.
    SeverityInformation DiagnosticSeverity = 3

type DiagnosticTag Uses

type DiagnosticTag uint

DiagnosticTag defines constants

type DocumentURI Uses

type DocumentURI string

type Location Uses

type Location struct {
    // URI is
    URI DocumentURI `json:"uri"`

    // Range is
    Range Range `json:"range"`

A Location represents a location inside a resource, such as a line inside a text file.

type LoggedOpt Uses

type LoggedOpt struct {
    // contains filtered or unexported fields

A LoggedOpt is what the compiler produces and accumulates, to be converted to JSON for human or IDE consumption.

type Position Uses

type Position struct {
    Line      uint `json:"line"`      // gopls uses float64, but json output is the same for integers
    Character uint `json:"character"` // gopls uses float64, but json output is the same for integers

type Range Uses

type Range struct {
    /*Start defined:
     * The range's start position
    Start Position `json:"start"`

    /*End defined:
     * The range's end position
    End Position `json:"end"` // exclusive

A Range in a text document expressed as (zero-based) start and end positions. A range is comparable to a selection in an editor. Therefore the end position is exclusive. If you want to specify a range that contains a line including the line ending character(s) then use an end position denoting the start of the next line.

type VersionHeader Uses

type VersionHeader struct {
    Version   int    `json:"version"`
    Package   string `json:"package"`
    Goos      string `json:"goos"`
    Goarch    string `json:"goarch"`
    GcVersion string `json:"gc_version"`
    File      string `json:"file,omitempty"` // LSP requires an enclosing resource, i.e., a file

Package logopt imports 14 packages (graph). Updated 2019-12-24. Refresh now. Tools for package owners.