<issue_start><issue_comment>Title: Expecting outputs when none defined
username_0: Right now with a solid:

```python
@solid
def foo(context):
    pass
```

Executing foo will result in:

`E                   dagster.core.errors.DagsterStepOutputNotFoundError: Core compute for solid "foo" did not return an output for non-optional output "result"`

Adding `yield Output(1)` or setting `output_defs=[OutputDefinition(Nothing)]` will permit a function that doesn't return something explicitly, but this seems like a bug where we're introducing a non-optional default `result` output

@username_1 does this ring any bells? if not I can dig in this week
<issue_comment>username_1: If you dont pass an argument for `output_defs` we default to `OutputDefinition(Any, 'result')`, so to do what you have above you need to do `@solid(output_defs=[])`
<issue_comment>username_0: Does that mean that `None` doesn't pass the typecheck for `Any`?
<issue_comment>username_1: Alright heres the issue:
```
@solid
def just_getting_started(_context):
  yield Materialization(...)
```

will fail since we default the output_defs and do not receive an output from the iterator<issue_closed>
<issue_comment>username_2: @username_0 @username_1 -- I'm not sure what the proposed solution here is. I don't think we can default to OutputDefinition(Nothing) instead of OutputDefinition(Any, 'result') so the current state seems reasonable 

closing this issue; feel free to re-open with more details