diff --git a/pydantic/fields.py b/pydantic/fields.py
--- a/pydantic/fields.py
+++ b/pydantic/fields.py
@@ -31,7 +31,6 @@
     display_as_type,
     is_literal_type,
     lenient_issubclass,
-    literal_values,
     sequence_like,
 )
 from .validators import NoneType, constant_validator, dict_validator, find_validators
@@ -197,11 +196,7 @@ def _populate_sub_fields(self) -> None:  # noqa: C901 (ignore complexity)
             # python 3.7 only, Pattern is a typing object but without sub fields
             return
         if is_literal_type(self.type_):
-            values = literal_values(self.type_)
-            if len(values) > 1:
-                self.type_ = Union[tuple(Literal[value] for value in values)]
-            else:
-                return
+            return
         origin = getattr(self.type_, '__origin__', None)
         if origin is None:
             # field is not "typing" object eg. Union, Dict, List etc.
diff --git a/pydantic/schema.py b/pydantic/schema.py
--- a/pydantic/schema.py
+++ b/pydantic/schema.py
@@ -49,6 +49,7 @@
     constr,
 )
 from .utils import (
+    Literal,
     is_callable_type,
     is_literal_type,
     is_new_type,
@@ -758,8 +759,16 @@ def field_singleton_schema(  # noqa: C901 (ignore complexity)
     if is_new_type(field_type):
         field_type = new_type_supertype(field_type)
     if is_literal_type(field_type):
-        # If there were multiple literal values, field.sub_fields would not be falsy
-        literal_value = literal_values(field_type)[0]
+        values = literal_values(field_type)
+        if len(values) > 1:
+            return field_schema(
+                multivalue_literal_field_for_schema(values, field),
+                by_alias=by_alias,
+                model_name_map=model_name_map,
+                ref_prefix=ref_prefix,
+                known_models=known_models,
+            )
+        literal_value = values[0]
         field_type = type(literal_value)
         f_schema['const'] = literal_value
     if issubclass(field_type, Enum):
@@ -807,6 +816,19 @@ def field_singleton_schema(  # noqa: C901 (ignore complexity)
     raise ValueError(f'Value not declarable with JSON Schema, field: {field}')
 
 
+def multivalue_literal_field_for_schema(values: Tuple[Any, ...], field: Field) -> Field:
+    return Field(
+        name=field.name,
+        type_=Union[tuple(Literal[value] for value in values)],
+        class_validators=field.class_validators,
+        model_config=field.model_config,
+        default=field.default,
+        required=field.required,
+        alias=field.alias,
+        schema=field.schema,
+    )
+
+
 def encode_default(dft: Any) -> Any:
     if isinstance(dft, (int, float, str)):
         return dft

Thanks for making an issue, I’ll take a look.
diff --git a/tests/test_types.py b/tests/test_types.py
--- a/tests/test_types.py
+++ b/tests/test_types.py
@@ -1730,14 +1730,8 @@ class Model(BaseModel):
     assert exc_info.value.errors() == [
         {
             'loc': ('a_or_b',),
-            'msg': "unexpected value; permitted: 'a'",
+            'msg': "unexpected value; permitted: 'a', 'b'",
             'type': 'value_error.const',
-            'ctx': {'given': 'c', 'permitted': ('a',)},
-        },
-        {
-            'loc': ('a_or_b',),
-            'msg': "unexpected value; permitted: 'b'",
-            'type': 'value_error.const',
-            'ctx': {'given': 'c', 'permitted': ('b',)},
-        },
+            'ctx': {'given': 'c', 'permitted': ('a', 'b')},
+        }
     ]

Duplicated errors when using a Literal choice
# Bug

Please complete:
* OS: macOS Mojave 10.14.6 (18G87)
* Python version `import sys; print(sys.version)`: 3.7.4 (default, Jul  9 2019, 18:13:23) [Clang 10.0.1 (clang-1001.0.46.4)]
* Pydantic version `import pydantic; print(pydantic.VERSION)`: 0.32.2

I tried looking for an existing issue, [found this](https://www.amazon.com/Low-Culture-Everything-Around-Computer/dp/B07381HM47), but didn't seem appropriate.

In #651, examples on how to use the `Literal` option were introduced, including [this example](https://github.com/samuelcolvin/pydantic/blob/bc600145184979d774e40c5d98f7a76d90ca616a/docs/examples/literal1.py) showing a single validation error, and the acceptable choices.

Running this file today produces two errors, instead of one, and doesn't populate the `permitted` value correctly.

```shellsession
$ python docs/examples/literal1.py
2 validation errors for Pie
flavor
  unexpected value; permitted: 'apple' (type=value_error.const; given=cherry; permitted=('apple',))
flavor
  unexpected value; permitted: 'pumpkin' (type=value_error.const; given=cherry; permitted=('pumpkin',))
```


tests/test_types.py::test_literal_multiple
tests/test_types.py::test_constrained_bytes_good tests/test_types.py::test_constrained_bytes_default tests/test_types.py::test_constrained_bytes_too_long tests/test_types.py::test_constrained_list_good tests/test_types.py::test_constrained_list_default tests/test_types.py::test_constrained_list_too_long tests/test_types.py::test_constrained_list_too_short tests/test_types.py::test_constrained_list_constraints tests/test_types.py::test_constrained_list_item_type_fails tests/test_types.py::test_constrained_str_good tests/test_types.py::test_constrained_str_default tests/test_types.py::test_constrained_str_too_long tests/test_types.py::test_dsn_compute tests/test_types.py::test_dsn_define tests/test_types.py::test_dsn_pw_host tests/test_types.py::test_dsn_no_driver tests/test_types.py::test_module_import tests/test_types.py::test_pyobject_none tests/test_types.py::test_pyobject_callable tests/test_types.py::test_default_validators[bool_check-True-True] tests/test_types.py::test_default_validators[bool_check-False-False] tests/test_types.py::test_default_validators[bool_check-None-False] tests/test_types.py::test_default_validators[bool_check--False] tests/test_types.py::test_default_validators[bool_check-1-True0] tests/test_types.py::test_default_validators[bool_check-TRUE-True0] tests/test_types.py::test_default_validators[bool_check-TRUE-True1] tests/test_types.py::test_default_validators[bool_check-true-True] tests/test_types.py::test_default_validators[bool_check-1-True1] tests/test_types.py::test_default_validators[bool_check-2-False] tests/test_types.py::test_default_validators[bool_check-2-True] tests/test_types.py::test_default_validators[bool_check-on-True] tests/test_types.py::test_default_validators[bool_check-yes-True] tests/test_types.py::test_default_validators[str_check-s-s0] tests/test_types.py::test_default_validators[str_check- tests/test_types.py::test_default_validators[str_check-s-s1] tests/test_types.py::test_default_validators[str_check-1-1] tests/test_types.py::test_default_validators[str_check-xxxxxxxxxxx-ValidationError0] tests/test_types.py::test_default_validators[str_check-xxxxxxxxxxx-ValidationError1] tests/test_types.py::test_default_validators[bytes_check-s-s0] tests/test_types.py::test_default_validators[bytes_check- tests/test_types.py::test_default_validators[bytes_check-s-s1] tests/test_types.py::test_default_validators[bytes_check-1-1] tests/test_types.py::test_default_validators[bytes_check-value25-xx] tests/test_types.py::test_default_validators[bytes_check-True-True] tests/test_types.py::test_default_validators[bytes_check-False-False] tests/test_types.py::test_default_validators[bytes_check-value28-ValidationError] tests/test_types.py::test_default_validators[bytes_check-xxxxxxxxxxx-ValidationError0] tests/test_types.py::test_default_validators[bytes_check-xxxxxxxxxxx-ValidationError1] tests/test_types.py::test_default_validators[int_check-1-10] tests/test_types.py::test_default_validators[int_check-1.9-1] tests/test_types.py::test_default_validators[int_check-1-11] tests/test_types.py::test_default_validators[int_check-1.9-ValidationError] tests/test_types.py::test_default_validators[int_check-1-12] tests/test_types.py::test_default_validators[int_check-12-120] tests/test_types.py::test_default_validators[int_check-12-121] tests/test_types.py::test_default_validators[int_check-12-122] tests/test_types.py::test_default_validators[float_check-1-1.00] tests/test_types.py::test_default_validators[float_check-1.0-1.00] tests/test_types.py::test_default_validators[float_check-1.0-1.01] tests/test_types.py::test_default_validators[float_check-1-1.01] tests/test_types.py::test_default_validators[float_check-1.0-1.02] tests/test_types.py::test_default_validators[float_check-1-1.02] tests/test_types.py::test_default_validators[uuid_check-ebcdab58-6eb8-46fb-a190-d07a33e9eac8-result45] tests/test_types.py::test_default_validators[uuid_check-value46-result46] tests/test_types.py::test_default_validators[uuid_check-ebcdab58-6eb8-46fb-a190-d07a33e9eac8-result47] tests/test_types.py::test_default_validators[uuid_check-ebcdab58-6eb8-46fb-a190--ValidationError] tests/test_types.py::test_default_validators[uuid_check-123-ValidationError] tests/test_types.py::test_default_validators[decimal_check-42.24-result50] tests/test_types.py::test_default_validators[decimal_check-42.24-result51] tests/test_types.py::test_default_validators[decimal_check-42.24-result52] tests/test_types.py::test_default_validators[decimal_check- tests/test_types.py::test_default_validators[decimal_check-value54-result54] tests/test_types.py::test_default_validators[decimal_check-not tests/test_types.py::test_default_validators[decimal_check-NaN-ValidationError] tests/test_types.py::test_string_too_long tests/test_types.py::test_string_too_short tests/test_types.py::test_datetime_successful tests/test_types.py::test_datetime_errors tests/test_types.py::test_enum_successful tests/test_types.py::test_enum_fails tests/test_types.py::test_int_enum_successful_for_str_int tests/test_types.py::test_string_success tests/test_types.py::test_string_fails tests/test_types.py::test_dict tests/test_types.py::test_list_success[value0-result0] tests/test_types.py::test_list_success[value1-result1] tests/test_types.py::test_list_success[value2-result2] tests/test_types.py::test_list_success[value3-result3] tests/test_types.py::test_list_fails[1230] tests/test_types.py::test_list_fails[1231] tests/test_types.py::test_ordered_dict tests/test_types.py::test_tuple_success[value0-result0] tests/test_types.py::test_tuple_success[value1-result1] tests/test_types.py::test_tuple_success[value2-result2] tests/test_types.py::test_tuple_success[value3-result3] tests/test_types.py::test_tuple_fails[1230] tests/test_types.py::test_tuple_fails[1231] tests/test_types.py::test_tuple_variable_len_success[value0-int-result0] tests/test_types.py::test_tuple_variable_len_success[value1-int-result1] tests/test_types.py::test_tuple_variable_len_success[value2-int-result2] tests/test_types.py::test_tuple_variable_len_success[value3-str-result3] tests/test_types.py::test_tuple_variable_len_fails[value0-str-exc0] tests/test_types.py::test_tuple_variable_len_fails[value1-str-exc1] tests/test_types.py::test_set_success[value0-result0] tests/test_types.py::test_set_success[value1-result1] tests/test_types.py::test_set_success[value2-result2] tests/test_types.py::test_set_success[value3-result3] tests/test_types.py::test_set_fails[1230] tests/test_types.py::test_set_fails[1231] tests/test_types.py::test_list_type_fails tests/test_types.py::test_set_type_fails tests/test_types.py::test_sequence_success[int-value0-result0] tests/test_types.py::test_sequence_success[int-value1-result1] tests/test_types.py::test_sequence_success[float-value2-result2] tests/test_types.py::test_sequence_success[cls3-value3-result3] tests/test_types.py::test_sequence_success[cls4-value4-result4] tests/test_types.py::test_sequence_generator_success[int-value0-result0] tests/test_types.py::test_sequence_generator_success[float-value1-result1] tests/test_types.py::test_sequence_generator_success[str-value2-result2] tests/test_types.py::test_sequence_generator_fails[int-value0-errors0] tests/test_types.py::test_sequence_generator_fails[float-value1-errors1] tests/test_types.py::test_sequence_fails[int-value0-errors0] tests/test_types.py::test_sequence_fails[int-value1-errors1] tests/test_types.py::test_sequence_fails[float-value2-errors2] tests/test_types.py::test_sequence_fails[float-value3-errors3] tests/test_types.py::test_sequence_fails[float-value4-errors4] tests/test_types.py::test_sequence_fails[cls5-value5-errors5] tests/test_types.py::test_sequence_fails[cls6-value6-errors6] tests/test_types.py::test_sequence_fails[cls7-value7-errors7] tests/test_types.py::test_int_validation tests/test_types.py::test_float_validation tests/test_types.py::test_strict_str tests/test_types.py::test_strict_bool tests/test_types.py::test_uuid_error tests/test_types.py::test_uuid_validation tests/test_types.py::test_anystr_strip_whitespace_enabled tests/test_types.py::test_anystr_strip_whitespace_disabled tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value0-result0] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value1-result1] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value2-result2] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value3-result3] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value4-result4] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value5-result5] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value6-result6] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value7-result7] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value8-result8] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value9-result9] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value10-result10] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value11-result11] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value12-result12] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value13-result13] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value14-result14] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value15-result15] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value16-result16] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value17-result17] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value18-result18] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value19-result19] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value20-result20] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-NaN-result21] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue--NaN-result22] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-+NaN-result23] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-sNaN-result24] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue--sNaN-result25] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-+sNaN-result26] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-Inf-result27] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue--Inf-result28] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-+Inf-result29] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-Infinity-result30] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue--Infinity-result31] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue--Infinity-result32] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value33-result33] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value34-result34] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value35-result35] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value36-result36] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value37-result37] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value38-result38] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value39-result39] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value40-result40] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value41-result41] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value42-result42] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value43-result43] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value44-result44] tests/test_types.py::test_decimal_validation[ConstrainedDecimalValue-value45-result45] tests/test_types.py::test_path_validation_success[/test/path-result0] tests/test_types.py::test_path_validation_success[value1-result1] tests/test_types.py::test_path_validation_fails tests/test_types.py::test_file_path_validation_success[tests/test_types.py-result0] tests/test_types.py::test_file_path_validation_success[value1-result1] tests/test_types.py::test_file_path_validation_fails[nonexistentfile-errors0] tests/test_types.py::test_file_path_validation_fails[value1-errors1] tests/test_types.py::test_file_path_validation_fails[tests-errors2] tests/test_types.py::test_file_path_validation_fails[value3-errors3] tests/test_types.py::test_directory_path_validation_success[tests-result0] tests/test_types.py::test_directory_path_validation_success[value1-result1] tests/test_types.py::test_directory_path_validation_fails[nonexistentdirectory-errors0] tests/test_types.py::test_directory_path_validation_fails[value1-errors1] tests/test_types.py::test_directory_path_validation_fails[tests/test_types.py-errors2] tests/test_types.py::test_directory_path_validation_fails[value3-errors3] tests/test_types.py::test_number_gt tests/test_types.py::test_number_ge tests/test_types.py::test_number_lt tests/test_types.py::test_number_le tests/test_types.py::test_number_multiple_of_int_valid[10] tests/test_types.py::test_number_multiple_of_int_valid[100] tests/test_types.py::test_number_multiple_of_int_valid[20] tests/test_types.py::test_number_multiple_of_int_invalid[1337] tests/test_types.py::test_number_multiple_of_int_invalid[23] tests/test_types.py::test_number_multiple_of_int_invalid[6] tests/test_types.py::test_number_multiple_of_int_invalid[14] tests/test_types.py::test_number_multiple_of_float_valid[0.2] tests/test_types.py::test_number_multiple_of_float_valid[0.3] tests/test_types.py::test_number_multiple_of_float_valid[0.4] tests/test_types.py::test_number_multiple_of_float_valid[0.5] tests/test_types.py::test_number_multiple_of_float_valid[1] tests/test_types.py::test_number_multiple_of_float_invalid[0.07] tests/test_types.py::test_number_multiple_of_float_invalid[1.27] tests/test_types.py::test_number_multiple_of_float_invalid[1.003] tests/test_types.py::test_bounds_config_exceptions[conint] tests/test_types.py::test_bounds_config_exceptions[confloat] tests/test_types.py::test_bounds_config_exceptions[condecimal] tests/test_types.py::test_new_type_success tests/test_types.py::test_new_type_fails tests/test_types.py::test_valid_simple_json tests/test_types.py::test_invalid_simple_json tests/test_types.py::test_valid_simple_json_bytes tests/test_types.py::test_valid_detailed_json tests/test_types.py::test_invalid_detailed_json_value_error tests/test_types.py::test_valid_detailed_json_bytes tests/test_types.py::test_invalid_detailed_json_type_error tests/test_types.py::test_json_not_str tests/test_types.py::test_pattern tests/test_types.py::test_pattern_error tests/test_types.py::test_secretstr tests/test_types.py::test_secretstr_error tests/test_types.py::test_secretbytes tests/test_types.py::test_secretbytes_error tests/test_types.py::test_generic_without_params tests/test_types.py::test_generic_without_params_error tests/test_types.py::test_literal_single