pulumi/tests/testdata
Will Jones 17b66dfc56
Add a `call` intrinsic to PCL
In order for PCL to serve as an authoritative intermediate language for
Pulumi programs, it needs to be able to express all the concepts
available to a Pulumi program written in a high-level programming
language. Put another way, it must be capable of expressing all the
functionality exposed by the `ResourceMonitor` interface. Presently, the
ability to `Call` methods on component resources is not available in
PCL. This change adds a new `call` intrinsic to fix that.

`call` has three required arguments: the receiver (that will become the
`__self__` argument under the hood), the method name (that must exist in
the resource's `Methods` map in schema), and an object of arguments
(whose specifications must appear in the corresponding `Function` in the
schema). An example use of `call` might thus look as follows:

```hcl
resource "c" "pkg:index:Callable" {
  ...
}

output "o" {
  value = call(c, "method", { x = 1, y = 2 })
}
```

In order to type check and applications of `call` when binding PCL
programs, we use the recently powered-up annotations feature to look up
the resource node of the receiver from its expression. With this, we are
able to grab the schema and validate the method name and arguments.
While we add unit tests for binding programs that use `call`, this
change does not extend program generation or the conformance test suite.
This will be done in a subsequent set of changes.

Part of fixing pulumi/pulumi-java#262
2025-01-10 16:58:48 +00:00
..
aws_tf Add an envar to disable automatic provider installation (#14083) 2023-10-03 15:35:23 +00:00
bad_random_pp Make convert more lenient 2023-06-08 11:14:31 +01:00
codegen Add a `call` intrinsic to PCL 2025-01-10 16:58:48 +00:00
component_pp Test components in convert 2023-06-01 20:54:44 +01:00
import_node Fix flakey test (#15311) 2024-01-30 14:08:47 +00:00
random_pp Add per-language smoke tests to the integration tests 2023-05-06 09:23:19 +01:00
random_yaml Add a simple yaml convert smoke test 2023-08-09 17:48:41 +01:00
relative_plugin_node Ensure project plugins are absolute paths (#15470) 2024-02-22 11:43:18 +00:00
simple_schema Add per-language smoke tests to the integration tests 2023-05-06 09:23:19 +01:00
simple_tags Cover bool like and number like values in pulumi:tags test (#14092) 2023-10-07 18:27:03 +00:00