ValueDefinition.ceylon
import ceylon.ast.core {
Annotations,
AnySpecifier,
ValueDefinition,
DynamicModifier,
LIdentifier,
Type,
ValueModifier
}
import ceylon.ast.redhat {
RedHatTransformer,
valueDefinitionToCeylon,
compileValueDefinition
}
import com.redhat.ceylon.compiler.typechecker.tree {
Tree {
JAttributeDeclaration=AttributeDeclaration
}
}
shared object valueDefinition satisfies ConcreteTest<ValueDefinition,JAttributeDeclaration> {
String->ValueDefinition construct(String->LIdentifier name, String->Type|ValueModifier|DynamicModifier type, String->AnySpecifier definition, String->Annotations annotations)
=> "``annotations.key`` ``type.key`` ``name.key````definition.key``;"->ValueDefinition(name.item, type.item, definition.item, annotations.item);
shared String->ValueDefinition lidValueDefinition = construct(identifier.lidLIdentifier, valueModifier.valueModifier, specifier._0Specifier, annotations.emptyAnnotations);
shared String->ValueDefinition annotatedByValueDefinition = construct(identifier.byLIdentifier, intersectionType.persistentAndPrintableAndIdentifiableIntersectionType, lazySpecifier.aTimesBPlusCLazySpecifier, annotations.helloSharedByLucasAnnotations);
// not tested directly, but used by other tests
shared String->ValueDefinition stringDefinition = construct(identifier.stringLIdentifier, baseType.stringType, lazySpecifier.xyStringSpecifier, annotations.sharedActualAnnotations);
compile = compileValueDefinition;
fromCeylon = RedHatTransformer.transformValueDefinition;
toCeylon = valueDefinitionToCeylon;
codes = [lidValueDefinition, annotatedByValueDefinition];
}