pulumi/pkg/compiler
joeduffy d63a09ea2f Bind properties that refer to types
A stack property can refer to other stack types.  For example:

        properties:
                gateway:
                        type: aws/ec2/internetGateway
                        ...

In such cases, we need to validate the property during binding,
in addition to binding it to an actual type so that we can later
validate callers who are constructing instances of this stack
and providing property values that we must typecheck.

Note that this binding is subtly different than existing stack
type binding.  All the name validation, resolution, and so forth
are the same.  However, notice that in this case we are not actually
supplying any property setters.  That is, internetGateway is not
an "expanded" type, in that we have not processed any of its templates.
An analogy might help: this is sort of akin referring to an
uninstantiated generic type in a traditional programming language,
versus its instantiated form.  In this case, certain properties aren't
available to us, however we can still use it for type identity, etc.
2016-12-03 11:14:06 -08:00
..
backends Clean up an assertion message 2016-12-02 17:07:15 -08:00
core Detect target cloud earlier on 2016-11-29 13:42:39 -08:00
predef Add some property binding tests 2016-12-02 14:33:22 -08:00
testdata Add some property binding tests 2016-12-02 14:33:22 -08:00
binder.go Bind properties that refer to types 2016-12-03 11:14:06 -08:00
binder_test.go Add some property binding tests 2016-12-02 14:33:22 -08:00
common_test.go Add a diag.Sink.Success helper function 2016-11-22 09:40:09 -08:00
compiler.go Move parse-tree analysis into the Parse* functions 2016-12-01 11:39:03 -08:00
compiler_be.go Detect target cloud earlier on 2016-11-29 13:42:39 -08:00
compiler_fe.go Move parse-tree analysis into the Parse* functions 2016-12-01 11:39:03 -08:00
compiler_sema.go Bind properties that refer to types 2016-12-03 11:14:06 -08:00
compiler_test.go Clean up workspace file naming 2016-11-29 20:07:27 -08:00
context.go Add some property binding tests 2016-12-02 14:33:22 -08:00
opts.go Permit passing stack properties via the CLI 2016-11-29 15:27:02 -08:00
parser.go Move parse-tree analysis into the Parse* functions 2016-12-01 11:39:03 -08:00
parsetree.go Add rudimentary template expansion 2016-11-25 12:58:29 -08:00
symbols.go Bind properties that refer to types 2016-12-03 11:14:06 -08:00
templates.go Raise template loglevel from V(5) to V(7) 2016-12-01 11:13:39 -08:00