mirror of
https://github.com/apple/pkl.git
synced 2026-06-11 00:02:47 +02:00
Fix error rendering @ConvertProperty annotations during error reporting (#1648)
The added snippet test originally produced error "A value of type `Function2` cannot be exported." This PR actually fixes the bug twice: * By marking `ConvertProperty.render` as `hidden` so that it is skipped when the enclosing object is exported. This broke any attempts to obtain the module schema because this requires exporting all annotations on all class properties. * By changing the way that `VmUndefinedValueException.fillInHint()` obtains the module URI to avoid obtaining the module schema (and triggering the more expensive module schema generation process). It also makes function-typed annotation properties in `pkl:Command` hidden to avoid similar issues there.
This commit is contained in:
+4
-4
@@ -165,7 +165,7 @@ class Flag extends BaseFlag {
|
||||
/// | [Listing], [List], [Set] | Element values are parsed based on the above primitive types |
|
||||
/// | [Mapping], [Map], [Pair] | Value is split into a [Pair] on the first `"="` and each substring is parsed based on the above primitive types |
|
||||
/// | Other types | An error is thrown; `convert` should be defined explicitly |
|
||||
convert: ((String) -> Any)?
|
||||
hidden convert: ((String) -> Any)?
|
||||
|
||||
/// Specifies whether the flag may be specified more than once.
|
||||
///
|
||||
@@ -188,7 +188,7 @@ class Flag extends BaseFlag {
|
||||
/// | [Listing], [List] | Result is all option values in the order specified |
|
||||
/// | [Set] | Result is all unique option values |
|
||||
/// | Other types | Result is the last value specified option value |
|
||||
transformAll: ((List<Any>) -> Any)?
|
||||
hidden transformAll: ((List<Any>) -> Any)?
|
||||
|
||||
/// Specify how this flag should be completed in generated shell completions.
|
||||
///
|
||||
@@ -226,7 +226,7 @@ class Argument extends Annotation {
|
||||
///
|
||||
/// If no value is provided, each option value is transformed using the same rules as
|
||||
/// [Flag.convert].
|
||||
convert: ((String) -> Any)?
|
||||
hidden convert: ((String) -> Any)?
|
||||
|
||||
/// Specifies whether the argument may be specified more than once.
|
||||
///
|
||||
@@ -245,7 +245,7 @@ class Argument extends Annotation {
|
||||
///
|
||||
/// If no value is provided, all option values are transformed using the same rules as
|
||||
/// [Flag.transformAll].
|
||||
transformAll: ((List<Any>) -> Any)?
|
||||
hidden transformAll: ((List<Any>) -> Any)?
|
||||
|
||||
/// Specify how this flag should be completed in generated shell completions.
|
||||
///
|
||||
|
||||
+1
-1
@@ -414,7 +414,7 @@ abstract class BaseValueRenderer {
|
||||
open class ConvertProperty extends Annotation {
|
||||
/// Function called by [BaseValueRenderer] types during rendering to transform property
|
||||
/// names and values.
|
||||
render: (Pair<String, Any>, BaseValueRenderer) -> Pair<String, Any>
|
||||
hidden render: (Pair<String, Any>, BaseValueRenderer) -> Pair<String, Any>
|
||||
}
|
||||
|
||||
/// Base class for rendering Pkl values in some textual output format.
|
||||
|
||||
Reference in New Issue
Block a user