jcb.addSuperinterface(JPRAValueType.class); for (final TPacked.FieldType f : t.getFieldsInDeclarationOrder()) { f.matchField( new TPacked.FieldMatcherType<Unit, UnreachableCodeException>() jcb, t.getFieldsInDeclarationOrder());
jcb.addSuperinterface(JPRAValueType.class); for (final TPacked.FieldType f : t.getFieldsInDeclarationOrder()) { f.matchField( new TPacked.FieldMatcherType<Unit, UnreachableCodeException>()
t.getFieldsInDeclarationOrder(); final BigInteger container_size = t.getSizeInBits().getValue();
for (final TPacked.FieldType f : t.getFieldsInDeclarationOrder()) { final BigInteger o = offset; f.matchField(
type.getFieldsInDeclarationOrder().size() == orig_ordered.size(), "%d == %d", Integer.valueOf(type.getFieldsInDeclarationOrder().size()), Integer.valueOf(orig_ordered.size()));
@Test public final void testTypeDeclPackedPadding_0() throws Exception { final JPRAParserType p = this.newParser(); final GlobalContextType c = GlobalContexts.newContext(new AlwaysEmptyLoader()); final JPRAResolverType r = this.newResolver(c); final JPRACheckerType ch = this.newChecker( c, JPRACheckerStandardCapabilities.newCapabilities()); ch.checkPackageBegin( r.resolvePackageBegin( (StatementPackageBegin<Unresolved, Untyped>) p.parseStatement( this.newStringSExpr("(package-begin x.y)")))); final TypeDeclType<IdentifierType, TType> td = ch.checkTypeDeclaration( r.resolveTypeDeclaration( (TypeDeclType<Unresolved, Untyped>) p.parseStatement( this.newStringSExpr("(packed T [(padding-bits 8)])")))); final TypeDeclPacked<IdentifierType, TType> tr = TypeDeclPacked.class.cast(td); final TPacked tt = TPacked.class.cast(tr.getType()); this.checkPackedInvariants(tr, tt); final TPacked.FieldPaddingBits f = TPacked.FieldPaddingBits.class.cast( tt.getFieldsInDeclarationOrder().get(0)); Assert.assertEquals(BigInteger.valueOf(8L), f.getSize().getValue()); }
(TPacked.FieldPaddingBits) tp.getFieldsInDeclarationOrder().get(3); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(0L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(2); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(4L), range.getLower()); (TPacked.FieldPaddingBits) tp.getFieldsInDeclarationOrder().get(1); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(8L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(0); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(12L), range.getLower());
(TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(3); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(0L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(2); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(4L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(1); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(8L), range.getLower()); (TPacked.FieldValue) tp.getFieldsInDeclarationOrder().get(0); final RangeInclusiveB range = f.getBitRange(); Assert.assertEquals(BigInteger.valueOf(12L), range.getLower());
private void checkPackedInvariants( final TypeDeclPacked<IdentifierType, TType> tr, final TPacked tt) { Assert.assertEquals(tr.getName(), tt.getName()); Assert.assertEquals(tr.getIdentifier(), tt.getIdentifier()); final ImmutableMap<FieldName, PackedFieldDeclValue<IdentifierType, TType>> tr_named = tr.getFieldsByName(); final ImmutableMap<FieldName, TPacked.FieldValue> tt_named = tt.getFieldsByName(); final ImmutableList<PackedFieldDeclType<IdentifierType, TType>> tr_order = tr.getFieldsInDeclarationOrder(); final ImmutableList<TPacked.FieldType> tt_order = tt.getFieldsInDeclarationOrder(); Assert.assertEquals((long) tt_named.size(), (long) tr_named.size()); Assert.assertEquals((long) tt_order.size(), (long) tr_order.size()); for (int index = 0; index < tt_order.size(); ++index) { final TPacked.FieldType f = tt_order.get(index); Assert.assertEquals(f.getOwner(), tt); } tt_named.forEachKey( k -> Assert.assertTrue("Map contains " + k, tr_named.containsKey(k))); }
type.getFieldsInDeclarationOrder().size() == orig_ordered.size()); Assertive.require(type.getFieldsByName().size() == orig_named.size()); type.getFieldsByName().forEachKey(