### Question:
UMemberSelect extends UExpression implements MemberSelectTree { @Override public JCExpression inline(Inliner inliner) throws CouldNotResolveImportException { JCExpression expression = getExpression().inline(inliner); if (expression.toString().equals(CONVERT_TO_IDENT)) { return inliner.maker().Ident(getIdentifier().inline(inliner)); } return inliner.maker().Select(getExpression().inline(inliner), getIdentifier().inline(inliner)); }  static UMemberSelect create(UExpression expression, CharSequence identifier, UType type); @Override abstract UExpression getExpression(); @Override abstract StringName getIdentifier(); @Override Choice<Unifier> visitMemberSelect(MemberSelectTree fieldAccess, Unifier unifier); @Override Choice<Unifier> visitIdentifier(final IdentifierTree ident, Unifier unifier); @Override Kind getKind(); @Override R accept(TreeVisitor<R, D> visitor, D data); @Override JCExpression inline(Inliner inliner); static final String CONVERT_TO_IDENT; }### Answer:
@Test public void inline() { ULiteral fooLit = ULiteral.stringLit("foo"); UType type = mock(UType.class); UMemberSelect memberSelect = UMemberSelect.create(fooLit, "length", type); assertInlines("\"foo\".length", memberSelect); }