signatures.go raw

   1  package knowledge
   2  
   3  import (
   4  	"go/token"
   5  	"go/types"
   6  )
   7  
   8  var Signatures = map[string]*types.Signature{
   9  	"(io.Seeker).Seek": types.NewSignatureType(nil, nil, nil,
  10  		types.NewTuple(
  11  			types.NewParam(token.NoPos, nil, "", types.Typ[types.Int64]),
  12  			types.NewParam(token.NoPos, nil, "", types.Typ[types.Int]),
  13  		),
  14  		types.NewTuple(
  15  			types.NewParam(token.NoPos, nil, "", types.Typ[types.Int64]),
  16  			types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
  17  		),
  18  		false,
  19  	),
  20  
  21  	"(io.Writer).Write": types.NewSignatureType(nil, nil, nil,
  22  		types.NewTuple(
  23  			types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Typ[types.Byte])),
  24  		),
  25  		types.NewTuple(
  26  			types.NewParam(token.NoPos, nil, "", types.Typ[types.Int]),
  27  			types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
  28  		),
  29  		false,
  30  	),
  31  
  32  	"(io.StringWriter).WriteString": types.NewSignatureType(nil, nil, nil,
  33  		types.NewTuple(
  34  			types.NewParam(token.NoPos, nil, "", types.Typ[types.String]),
  35  		),
  36  		types.NewTuple(
  37  			types.NewParam(token.NoPos, nil, "", types.Typ[types.Int]),
  38  			types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
  39  		),
  40  		false,
  41  	),
  42  
  43  	"(encoding.TextMarshaler).MarshalText": types.NewSignatureType(nil, nil, nil,
  44  		types.NewTuple(),
  45  		types.NewTuple(
  46  			types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Typ[types.Byte])),
  47  			types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
  48  		),
  49  		false,
  50  	),
  51  
  52  	"(encoding/json.Marshaler).MarshalJSON": types.NewSignatureType(nil, nil, nil,
  53  		types.NewTuple(),
  54  		types.NewTuple(
  55  			types.NewParam(token.NoPos, nil, "", types.NewSlice(types.Typ[types.Byte])),
  56  			types.NewParam(token.NoPos, nil, "", types.Universe.Lookup("error").Type()),
  57  		),
  58  		false,
  59  	),
  60  
  61  	"(fmt.Stringer).String": types.NewSignatureType(nil, nil, nil,
  62  		types.NewTuple(),
  63  		types.NewTuple(
  64  			types.NewParam(token.NoPos, nil, "", types.Typ[types.String]),
  65  		),
  66  		false,
  67  	),
  68  }
  69  
  70  var Interfaces = map[string]*types.Interface{
  71  	"fmt.Stringer": types.NewInterfaceType(
  72  		[]*types.Func{
  73  			types.NewFunc(token.NoPos, nil, "String", Signatures["(fmt.Stringer).String"]),
  74  		},
  75  		nil,
  76  	).Complete(),
  77  
  78  	"error": types.Universe.Lookup("error").Type().Underlying().(*types.Interface),
  79  
  80  	"io.Writer": types.NewInterfaceType(
  81  		[]*types.Func{
  82  			types.NewFunc(token.NoPos, nil, "Write", Signatures["(io.Writer).Write"]),
  83  		},
  84  		nil,
  85  	).Complete(),
  86  
  87  	"io.StringWriter": types.NewInterfaceType(
  88  		[]*types.Func{
  89  			types.NewFunc(token.NoPos, nil, "WriteString", Signatures["(io.StringWriter).WriteString"]),
  90  		},
  91  		nil,
  92  	).Complete(),
  93  
  94  	"encoding.TextMarshaler": types.NewInterfaceType(
  95  		[]*types.Func{
  96  			types.NewFunc(token.NoPos, nil, "MarshalText", Signatures["(encoding.TextMarshaler).MarshalText"]),
  97  		},
  98  		nil,
  99  	).Complete(),
 100  
 101  	"encoding/json.Marshaler": types.NewInterfaceType(
 102  		[]*types.Func{
 103  			types.NewFunc(token.NoPos, nil, "MarshalJSON", Signatures["(encoding/json.Marshaler).MarshalJSON"]),
 104  		},
 105  		nil,
 106  	).Complete(),
 107  }
 108