github.com/nevalang/neva@v0.23.1-0.20240507185603-7696a9bb8dda/internal/compiler/desugarer/const.go (about)

     1  package desugarer
     2  
     3  import (
     4  	"github.com/nevalang/neva/internal/compiler"
     5  	src "github.com/nevalang/neva/internal/compiler/sourcecode"
     6  )
     7  
     8  // handleConst handles case when constant has integer value and type is float.
     9  func (d Desugarer) handleConst(constant src.Const) (src.Const, *compiler.Error) {
    10  	if constant.Message == nil {
    11  		return constant, nil
    12  	}
    13  	if constant.Message.TypeExpr.String() != "float" {
    14  		return constant, nil
    15  	}
    16  	if constant.Message.Float != nil {
    17  		return constant, nil
    18  	}
    19  	return src.Const{
    20  		Message: &src.Message{
    21  			TypeExpr: constant.Message.TypeExpr,
    22  			Float:    compiler.Pointer(float64(*constant.Message.Int)),
    23  		},
    24  	}, nil
    25  }