I have a simple S3 bucket 'MyBucket' declared alongside an IAM Role 'MyBucketRole', if I attempt to access the bucket's ARN via:
{ "Fn::GetAtt": ["MyBucket", "Arn"] }
it will throw:
Template error: resource MyBucket does not support attribute type Arn in Fn::GetAtt

However, if I attempt to access the ARN via:
{ "Fn::GetAtt": [{"Fn::GetAtt": ["MyBucket", "BucketName"]}, "Arn"] }
it works fine.

Under normal Serverless circumstance the first option works fine, am I being silly or is this a legitimate/known issue?

It also appears that the working version only works if the resource is already deployed. If attempting to launch both bucket and role attached to bucket at the same time, results in the following error:

ERROR:localstack.services.cloudformation.cloudformation_starter: Unable to parse and create resource "MyBucketRole": unhashable type: 'dict'

Serverless also throws a 500 error.

**The following log may also help**, 
This occurs when attempting to get the resource's ARN upon launching it in the same stack as the role attempting to reference it:

```
2019-09-09T13:22:54:ERROR:localstack.services.cloudformation.cloudformation_starter: Unable to parse and create resource "MyBucketRole": 400 Bad Request: <ErrorResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
  <Error>
    <Type>Sender</Type>
    <Code>ValidationError</Code>
    <Message>Template error: resource MyBucket does not support attribute type Arn in Fn::GetAtt</Message>
  </Error>
  <RequestId>cf4c737e-5ae2-11e4-a7c9-ad44eEXAMPLE</RequestId>
</ErrorResponse>
```
from moto.awslambda import models as lambda_models
from moto.apigateway import models as apigw_models
from moto.cloudformation import parsing, responses
from boto.cloudformation.stack import Output
from moto.cloudformation.exceptions import ValidationError, UnformattedGetAttTemplateException
from localstack import config
from localstack.constants import DEFAULT_PORT_CLOUDFORMATION_BACKEND, TEST_AWS_ACCOUNT_ID, MOTO_ACCOUNT_ID
from localstack.utils.aws import aws_stack, aws_responses
from localstack.utils.common import FuncThread, short_uid, recurse_object, clone, json_safe
from localstack.stepfunctions import models as sfn_models
from localstack.services.infra import (
    get_service_protocol, start_proxy_for_service, do_run, canonicalize_api_names)
from localstack.utils.bootstrap import setup_logging
from localstack.utils.cloudformation import template_deployer
from localstack.services.cloudformation import service_models
from localstack.services.awslambda.lambda_api import BUCKET_MARKER_LOCAL
LOG = logging.getLogger(__name__)
CURRENTLY_UPDATING_RESOURCES = {}
RUN_SERVER_IN_PROCESS = False
MODEL_MAP = {
    'AWS::StepFunctions::Activity': service_models.StepFunctionsActivity,
    'AWS::SNS::Subscription': service_models.SNSSubscription,
    'AWS::ApiGateway::GatewayResponse': service_models.GatewayResponse,
    'AWS::ApiGateway::Deployment': apigw_models.Deployment,
    'AWS::ApiGateway::Method': apigw_models.Method,
    'AWS::ApiGateway::Resource': apigw_models.Resource,
    'AWS::ApiGateway::RestApi': apigw_models.RestAPI,
    'AWS::StepFunctions::StateMachine': sfn_models.StateMachine
}
def start_cloudformation(port=None, asynchronous=False, update_listener=None):