| @@ -1554,8 +1554,13 @@ func (g *Generator) generateMessage(message *Descriptor) { |
|
|
| 1554 |
1554 |
keyTag, valTag := g.goTag(d, keyField, keyWire), g.goTag(d, valField, valWire) |
| 1555 |
1555 |
|
| 1556 |
1556 |
// We don't use stars, except for message-typed values. |
|
1557 |
+// Message and enum types are the only two possibly foreign types used in maps, |
|
1558 |
+// so record their use. They are not permitted as map keys. |
| 1557 |
1559 |
keyType = strings.TrimPrefix(keyType, "*") |
| 1558 |
1560 |
switch *valField.Type { |
|
1561 |
+case descriptor.FieldDescriptorProto_TYPE_ENUM: |
|
1562 |
+valType = strings.TrimPrefix(valType, "*") |
|
1563 |
+g.RecordTypeUse(valField.GetTypeName()) |
| 1559 |
1564 |
case descriptor.FieldDescriptorProto_TYPE_MESSAGE: |
| 1560 |
1565 |
g.RecordTypeUse(valField.GetTypeName()) |
| 1561 |
1566 |
default: |