| OLD | NEW |
| 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 Loading... |
| 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 } |
| OLD | NEW |