@Override
public PType caseAThreadDefinition(AThreadDefinition node,
TypeCheckInfo question) throws AnalysisException
{
question.scope = NameScope.NAMESANDSTATE;
FlatEnvironment local = new FlatEnvironment(question.assistantFactory, question.assistantFactory.createPDefinitionAssistant().getSelfDefinition(node), question.env);
PType rt = node.getStatement().apply(THIS, new TypeCheckInfo(question.assistantFactory, local, question.scope));
if (!(rt instanceof AVoidType) && !(rt instanceof AUnknownType))
{
TypeCheckerErrors.report(3049, "Thread statement/operation must not return a value", node.getLocation(), node);
}
node.setType(rt);
node.getOperationDef().setBody(node.getStatement().clone());
return rt;
}