Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(573)

Side by Side Diff: mojom/generators/go/translator/types.go

Issue 2233963003: Add support for constants in the new go generator. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Merge branch 'master' of github.com:domokit/mojo into const Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package translator 5 package translator
6 6
7 import ( 7 import (
8 "fmt" 8 "fmt"
9 "path/filepath"
10 9
11 "mojom/generated/mojom_types" 10 "mojom/generated/mojom_types"
12 ) 11 )
13 12
14 func (t *translator) translateType(mojomType mojom_types.Type) (goType string) { 13 func (t *translator) translateType(mojomType mojom_types.Type) (goType string) {
15 switch m := mojomType.(type) { 14 switch m := mojomType.(type) {
16 default: 15 default:
17 panic("Not implemented yet!") 16 panic("Not implemented yet!")
18 case *mojom_types.TypeSimpleType: 17 case *mojom_types.TypeSimpleType:
19 goType = t.translateSimpleType(m.Value) 18 goType = t.translateSimpleType(m.Value)
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 if typeRef.IsInterfaceRequest { 124 if typeRef.IsInterfaceRequest {
126 typeName = fmt.Sprintf("%s_Request", typeName) 125 typeName = fmt.Sprintf("%s_Request", typeName)
127 } else { 126 } else {
128 typeName = fmt.Sprintf("%s_Pointer", typeName) 127 typeName = fmt.Sprintf("%s_Pointer", typeName)
129 } 128 }
130 } 129 }
131 130
132 srcFileInfo := userDefinedTypeDeclData(userDefinedType).SourceFileInfo 131 srcFileInfo := userDefinedTypeDeclData(userDefinedType).SourceFileInfo
133 if srcFileInfo != nil && srcFileInfo.FileName != t.currentFileName { 132 if srcFileInfo != nil && srcFileInfo.FileName != t.currentFileName {
134 pkgName := fileNameToPackageName(srcFileInfo.FileName) 133 pkgName := fileNameToPackageName(srcFileInfo.FileName)
135 » » pkgPath, err := filepath.Rel(t.Config.SrcRootPath(), srcFileInfo .FileName) 134 » » t.importMojomFile(srcFileInfo.FileName)
136 » » if err != nil {
137 » » » panic(err.Error())
138 » » }
139 » » pkgPath = pkgPath[:len(pkgPath)-len(filepath.Ext(pkgPath))]
140 » » t.imports[pkgName] = pkgPath
141 typeName = fmt.Sprintf("%s.%s", pkgName, typeName) 135 typeName = fmt.Sprintf("%s.%s", pkgName, typeName)
142 } 136 }
143 137
144 if _, ok := userDefinedType.(*mojom_types.UserDefinedTypeUnionType); !ok && typeRef.Nullable { 138 if _, ok := userDefinedType.(*mojom_types.UserDefinedTypeUnionType); !ok && typeRef.Nullable {
145 typeName = "*" + typeName 139 typeName = "*" + typeName
146 } 140 }
147 141
148 return typeName 142 return typeName
149 } 143 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698