Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: test: spoon model collections contract #1922

Closed

Conversation

pvojtechovsky
Copy link
Collaborator

As discussed in #1917 here is the test, which checks type of each (most) Spoon model collections.

@pvojtechovsky
Copy link
Collaborator Author

This PR was rebased on #1923, which makes all derived properties unmodifiable. Now this PR reports no problem on derived collections.

Note: there are probably still some methods in Spoon model, which returns modifiable detached collections, but they are not recognized by SpoonMetaModel, because they have no CtRole.

@surli
Copy link
Collaborator

surli commented Mar 26, 2018

So we can close this one @pvojtechovsky right?

@pvojtechovsky
Copy link
Collaborator Author

can close this one ?

There was idea in #1917 that we create the test, which checks behavior of spoon model collections and that we will release next Spoon only when this test reports that all not derived collections are consistent -> modifiable attached, correctly firing change events and setting parent.

This PR is the test which can do that "before release check"

So if we still want to migrate all non derived collections, then keep it opened. We should then rebase it on latest version and see the current state.
Else close it.

@pvojtechovsky
Copy link
Collaborator Author

Note: The collection contract test in #1922 was wrong. It tested collection contract only for first added entry. But many collections in spoon behaves like this:

  • as long as collection is empty, the collection is READ_ONLY
  • once the item is added into collection, the collection is MUTABLE_ATTACHED_INCORRECT

The report below made by fixed #1922 and #1917 shows on each line

  1. whether collection is marked derived or is normal
  2. how it behave when collection is empty and how it behaves when collection contains one element (for normal)
  3. role which was checked
  4. Concept class which was checked

Expected collection handling:

derived;[READ_ONLY, READ_ONLY]annonymousExecutable of CtClass
derived;[READ_ONLY, READ_ONLY]annonymousExecutable of CtEnum
derived;[READ_ONLY, READ_ONLY]annotation of CtUnboundVariableReference
derived;[READ_ONLY, READ_ONLY]cast of CtAnnotation
derived;[READ_ONLY, READ_ONLY]comment of CtArrayTypeReference
derived;[READ_ONLY, READ_ONLY]comment of CtCatchVariableReference
derived;[READ_ONLY, READ_ONLY]comment of CtExecutableReference
derived;[READ_ONLY, READ_ONLY]comment of CtFieldReference
derived;[READ_ONLY, READ_ONLY]comment of CtIntersectionTypeReference
derived;[READ_ONLY, READ_ONLY]comment of CtLocalVariableReference
derived;[READ_ONLY, READ_ONLY]comment of CtModuleReference
derived;[READ_ONLY, READ_ONLY]comment of CtPackageReference
derived;[READ_ONLY, READ_ONLY]comment of CtParameterReference
derived;[READ_ONLY, READ_ONLY]comment of CtTypeParameterReference
derived;[READ_ONLY, READ_ONLY]comment of CtTypeReference
derived;[READ_ONLY, READ_ONLY]comment of CtUnboundVariableReference
derived;[READ_ONLY, READ_ONLY]comment of CtWildcardReference
derived;[READ_ONLY, READ_ONLY]constructor of CtClass
derived;[READ_ONLY, READ_ONLY]constructor of CtEnum
derived;[READ_ONLY, READ_ONLY]exportedPackage of CtModule
derived;[READ_ONLY, READ_ONLY]field of CtAnnotationType
derived;[READ_ONLY, READ_ONLY]field of CtClass
derived;[READ_ONLY, READ_ONLY]field of CtEnum
derived;[READ_ONLY, READ_ONLY]field of CtInterface
derived;[READ_ONLY, READ_ONLY]field of CtTypeParameter
derived;[READ_ONLY, READ_ONLY]interface of CtAnnotationType
derived;[READ_ONLY, READ_ONLY]interface of CtTypeParameter
derived;[READ_ONLY, READ_ONLY]method of CtAnnotationType
derived;[READ_ONLY, READ_ONLY]method of CtClass
derived;[READ_ONLY, READ_ONLY]method of CtEnum
derived;[READ_ONLY, READ_ONLY]method of CtInterface
derived;[READ_ONLY, READ_ONLY]method of CtTypeParameter
derived;[READ_ONLY, READ_ONLY]nestedType of CtAnnotationType
derived;[READ_ONLY, READ_ONLY]nestedType of CtClass
derived;[READ_ONLY, READ_ONLY]nestedType of CtEnum
derived;[READ_ONLY, READ_ONLY]nestedType of CtInterface
derived;[READ_ONLY, READ_ONLY]nestedType of CtTypeParameter
derived;[READ_ONLY, READ_ONLY]openedPackage of CtModule
derived;[READ_ONLY, READ_ONLY]parameter of CtAnnotationMethod
derived;[READ_ONLY, READ_ONLY]parameter of CtAnonymousExecutable
derived;[READ_ONLY, READ_ONLY]providedService of CtModule
derived;[READ_ONLY, READ_ONLY]requiredModule of CtModule
derived;[READ_ONLY, READ_ONLY]serviceType of CtModule
derived;[READ_ONLY, READ_ONLY]thrown of CtAnnotationMethod
derived;[READ_ONLY, READ_ONLY]thrown of CtAnonymousExecutable
derived;[READ_ONLY, READ_ONLY]thrown of CtLambda
derived;[READ_ONLY, READ_ONLY]typeArgument of CtTypeParameterReference
derived;[READ_ONLY, READ_ONLY]typeArgument of CtWildcardReference
derived;[READ_ONLY, READ_ONLY]typeMember of CtTypeParameter
derived;[READ_ONLY, READ_ONLY]typeParameter of CtAnnotationMethod
derived;[READ_ONLY, READ_ONLY]typeParameter of CtAnnotationType
derived;[READ_ONLY, READ_ONLY]typeParameter of CtEnum
derived;[READ_ONLY, READ_ONLY]typeParameter of CtTypeParameter
normal;[MUTABLE_ATTACHED_CORRECT, MUTABLE_ATTACHED_CORRECT]commentTag of CtJavaDoc
normal;[MUTABLE_ATTACHED_CORRECT, MUTABLE_ATTACHED_CORRECT]containedType of CtPackage
normal;[MUTABLE_ATTACHED_CORRECT, MUTABLE_ATTACHED_CORRECT]statement of CtBlock
normal;[MUTABLE_ATTACHED_CORRECT, MUTABLE_ATTACHED_CORRECT]subPackage of CtPackage

Wrong collection handling:

Failed check of;CtArrayTypeReference#interface. SpoonException : Setting of CtRole.INTERFACE is not supported for CtArrayTypeReferenceImpl
Failed check of;CtIntersectionTypeReference#interface. SpoonClassNotFoundException : cannot load class:
Failed check of;CtTypeParameterReference#interface. SpoonException : Cannot resolve type erasure of the type parameter reference, which is not able to found it's declaration.
Failed check of;CtTypeReference#interface. SpoonException : Setting of CtRole.INTERFACE is not supported for CtTypeReferenceImpl
Failed check of;CtWildcardReference#interface. SpoonException : Setting of CtRole.INTERFACE is not supported for CtWildcardReferenceImpl
derived;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeArgument of CtConstructorCall
derived;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeArgument of CtInvocation
derived;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeArgument of CtNewClass
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]argument of CtConstructorCall
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]argument of CtInvocation
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]argument of CtNewClass
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]case of CtSwitch
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtAnnotationFieldAccess
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtArrayRead
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtArrayWrite
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtAssignment
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtBinaryOperator
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtCodeSnippetExpression
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtConditional
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtConstructorCall
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtExecutableReferenceExpression
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtFieldRead
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtFieldWrite
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtInvocation
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtLambda
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtLiteral
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtNewArray
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtNewClass
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtOperatorAssignment
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtSuperAccess
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtThisAccess
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtTypeAccess
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtUnaryOperator
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtVariableRead
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]cast of CtVariableWrite
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]catch of CtTry
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]catch of CtTryWithResource
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]dimension of CtNewArray
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]expression of CtNewArray
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]forInit of CtFor
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]forUpdate of CtFor
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]interface of CtClass
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]interface of CtEnum
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]interface of CtInterface
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]multiType of CtCatchVariable
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]parameter of CtConstructor
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]parameter of CtMethod
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]statement of CtCase
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]statement of CtStatementList
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]thrown of CtConstructor
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]thrown of CtMethod
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]tryResource of CtTryWithResource
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeArgument of CtArrayTypeReference
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeArgument of CtExecutableReference
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeArgument of CtIntersectionTypeReference
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeArgument of CtTypeReference
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeParameter of CtClass
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeParameter of CtConstructor
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeParameter of CtInterface
normal;[READ_ONLY, MUTABLE_ATTACHED_INCORRECT]typeParameter of CtMethod
normal;[READ_ONLY, READ_ONLY]annotation of CtAnnotation
normal;[READ_ONLY, READ_ONLY]annotation of CtAnnotationFieldAccess
normal;[READ_ONLY, READ_ONLY]annotation of CtAnnotationMethod
normal;[READ_ONLY, READ_ONLY]annotation of CtAnnotationType
normal;[READ_ONLY, READ_ONLY]annotation of CtAnonymousExecutable
normal;[READ_ONLY, READ_ONLY]annotation of CtArrayRead
normal;[READ_ONLY, READ_ONLY]annotation of CtArrayTypeReference
normal;[READ_ONLY, READ_ONLY]annotation of CtArrayWrite
normal;[READ_ONLY, READ_ONLY]annotation of CtAssert
normal;[READ_ONLY, READ_ONLY]annotation of CtAssignment
normal;[READ_ONLY, READ_ONLY]annotation of CtBinaryOperator
normal;[READ_ONLY, READ_ONLY]annotation of CtBlock
normal;[READ_ONLY, READ_ONLY]annotation of CtBreak
normal;[READ_ONLY, READ_ONLY]annotation of CtCase
normal;[READ_ONLY, READ_ONLY]annotation of CtCatch
normal;[READ_ONLY, READ_ONLY]annotation of CtCatchVariable
normal;[READ_ONLY, READ_ONLY]annotation of CtCatchVariableReference
normal;[READ_ONLY, READ_ONLY]annotation of CtClass
normal;[READ_ONLY, READ_ONLY]annotation of CtCodeSnippetExpression
normal;[READ_ONLY, READ_ONLY]annotation of CtCodeSnippetStatement
normal;[READ_ONLY, READ_ONLY]annotation of CtComment
normal;[READ_ONLY, READ_ONLY]annotation of CtConditional
normal;[READ_ONLY, READ_ONLY]annotation of CtConstructor
normal;[READ_ONLY, READ_ONLY]annotation of CtConstructorCall
normal;[READ_ONLY, READ_ONLY]annotation of CtContinue
normal;[READ_ONLY, READ_ONLY]annotation of CtDo
normal;[READ_ONLY, READ_ONLY]annotation of CtEnum
normal;[READ_ONLY, READ_ONLY]annotation of CtEnumValue
normal;[READ_ONLY, READ_ONLY]annotation of CtExecutableReference
normal;[READ_ONLY, READ_ONLY]annotation of CtExecutableReferenceExpression
normal;[READ_ONLY, READ_ONLY]annotation of CtField
normal;[READ_ONLY, READ_ONLY]annotation of CtFieldRead
normal;[READ_ONLY, READ_ONLY]annotation of CtFieldReference
normal;[READ_ONLY, READ_ONLY]annotation of CtFieldWrite
normal;[READ_ONLY, READ_ONLY]annotation of CtFor
normal;[READ_ONLY, READ_ONLY]annotation of CtForEach
normal;[READ_ONLY, READ_ONLY]annotation of CtIf
normal;[READ_ONLY, READ_ONLY]annotation of CtImport
normal;[READ_ONLY, READ_ONLY]annotation of CtInterface
normal;[READ_ONLY, READ_ONLY]annotation of CtIntersectionTypeReference
normal;[READ_ONLY, READ_ONLY]annotation of CtInvocation
normal;[READ_ONLY, READ_ONLY]annotation of CtJavaDoc
normal;[READ_ONLY, READ_ONLY]annotation of CtJavaDocTag
normal;[READ_ONLY, READ_ONLY]annotation of CtLambda
normal;[READ_ONLY, READ_ONLY]annotation of CtLiteral
normal;[READ_ONLY, READ_ONLY]annotation of CtLocalVariable
normal;[READ_ONLY, READ_ONLY]annotation of CtLocalVariableReference
normal;[READ_ONLY, READ_ONLY]annotation of CtMethod
normal;[READ_ONLY, READ_ONLY]annotation of CtModule
normal;[READ_ONLY, READ_ONLY]annotation of CtModuleReference
normal;[READ_ONLY, READ_ONLY]annotation of CtModuleRequirement
normal;[READ_ONLY, READ_ONLY]annotation of CtNewArray
normal;[READ_ONLY, READ_ONLY]annotation of CtNewClass
normal;[READ_ONLY, READ_ONLY]annotation of CtOperatorAssignment
normal;[READ_ONLY, READ_ONLY]annotation of CtPackage
normal;[READ_ONLY, READ_ONLY]annotation of CtPackageExport
normal;[READ_ONLY, READ_ONLY]annotation of CtPackageReference
normal;[READ_ONLY, READ_ONLY]annotation of CtParameter
normal;[READ_ONLY, READ_ONLY]annotation of CtParameterReference
normal;[READ_ONLY, READ_ONLY]annotation of CtProvidedService
normal;[READ_ONLY, READ_ONLY]annotation of CtReturn
normal;[READ_ONLY, READ_ONLY]annotation of CtStatementList
normal;[READ_ONLY, READ_ONLY]annotation of CtSuperAccess
normal;[READ_ONLY, READ_ONLY]annotation of CtSwitch
normal;[READ_ONLY, READ_ONLY]annotation of CtSynchronized
normal;[READ_ONLY, READ_ONLY]annotation of CtThisAccess
normal;[READ_ONLY, READ_ONLY]annotation of CtThrow
normal;[READ_ONLY, READ_ONLY]annotation of CtTry
normal;[READ_ONLY, READ_ONLY]annotation of CtTryWithResource
normal;[READ_ONLY, READ_ONLY]annotation of CtTypeAccess
normal;[READ_ONLY, READ_ONLY]annotation of CtTypeParameter
normal;[READ_ONLY, READ_ONLY]annotation of CtTypeParameterReference
normal;[READ_ONLY, READ_ONLY]annotation of CtTypeReference
normal;[READ_ONLY, READ_ONLY]annotation of CtUnaryOperator
normal;[READ_ONLY, READ_ONLY]annotation of CtUsedService
normal;[READ_ONLY, READ_ONLY]annotation of CtVariableRead
normal;[READ_ONLY, READ_ONLY]annotation of CtVariableWrite
normal;[READ_ONLY, READ_ONLY]annotation of CtWhile
normal;[READ_ONLY, READ_ONLY]annotation of CtWildcardReference
normal;[READ_ONLY, READ_ONLY]argumentType of CtExecutableReference
normal;[READ_ONLY, READ_ONLY]bound of CtIntersectionTypeReference
normal;[READ_ONLY, READ_ONLY]comment of CtAnnotation
normal;[READ_ONLY, READ_ONLY]comment of CtAnnotationFieldAccess
normal;[READ_ONLY, READ_ONLY]comment of CtAnnotationMethod
normal;[READ_ONLY, READ_ONLY]comment of CtAnnotationType
normal;[READ_ONLY, READ_ONLY]comment of CtAnonymousExecutable
normal;[READ_ONLY, READ_ONLY]comment of CtArrayRead
normal;[READ_ONLY, READ_ONLY]comment of CtArrayWrite
normal;[READ_ONLY, READ_ONLY]comment of CtAssert
normal;[READ_ONLY, READ_ONLY]comment of CtAssignment
normal;[READ_ONLY, READ_ONLY]comment of CtBinaryOperator
normal;[READ_ONLY, READ_ONLY]comment of CtBlock
normal;[READ_ONLY, READ_ONLY]comment of CtBreak
normal;[READ_ONLY, READ_ONLY]comment of CtCase
normal;[READ_ONLY, READ_ONLY]comment of CtCatch
normal;[READ_ONLY, READ_ONLY]comment of CtCatchVariable
normal;[READ_ONLY, READ_ONLY]comment of CtClass
normal;[READ_ONLY, READ_ONLY]comment of CtCodeSnippetExpression
normal;[READ_ONLY, READ_ONLY]comment of CtCodeSnippetStatement
normal;[READ_ONLY, READ_ONLY]comment of CtComment
normal;[READ_ONLY, READ_ONLY]comment of CtConditional
normal;[READ_ONLY, READ_ONLY]comment of CtConstructor
normal;[READ_ONLY, READ_ONLY]comment of CtConstructorCall
normal;[READ_ONLY, READ_ONLY]comment of CtContinue
normal;[READ_ONLY, READ_ONLY]comment of CtDo
normal;[READ_ONLY, READ_ONLY]comment of CtEnum
normal;[READ_ONLY, READ_ONLY]comment of CtEnumValue
normal;[READ_ONLY, READ_ONLY]comment of CtExecutableReferenceExpression
normal;[READ_ONLY, READ_ONLY]comment of CtField
normal;[READ_ONLY, READ_ONLY]comment of CtFieldRead
normal;[READ_ONLY, READ_ONLY]comment of CtFieldWrite
normal;[READ_ONLY, READ_ONLY]comment of CtFor
normal;[READ_ONLY, READ_ONLY]comment of CtForEach
normal;[READ_ONLY, READ_ONLY]comment of CtIf
normal;[READ_ONLY, READ_ONLY]comment of CtImport
normal;[READ_ONLY, READ_ONLY]comment of CtInterface
normal;[READ_ONLY, READ_ONLY]comment of CtInvocation
normal;[READ_ONLY, READ_ONLY]comment of CtJavaDoc
normal;[READ_ONLY, READ_ONLY]comment of CtJavaDocTag
normal;[READ_ONLY, READ_ONLY]comment of CtLambda
normal;[READ_ONLY, READ_ONLY]comment of CtLiteral
normal;[READ_ONLY, READ_ONLY]comment of CtLocalVariable
normal;[READ_ONLY, READ_ONLY]comment of CtMethod
normal;[READ_ONLY, READ_ONLY]comment of CtModule
normal;[READ_ONLY, READ_ONLY]comment of CtModuleRequirement
normal;[READ_ONLY, READ_ONLY]comment of CtNewArray
normal;[READ_ONLY, READ_ONLY]comment of CtNewClass
normal;[READ_ONLY, READ_ONLY]comment of CtOperatorAssignment
normal;[READ_ONLY, READ_ONLY]comment of CtPackage
normal;[READ_ONLY, READ_ONLY]comment of CtPackageExport
normal;[READ_ONLY, READ_ONLY]comment of CtParameter
normal;[READ_ONLY, READ_ONLY]comment of CtProvidedService
normal;[READ_ONLY, READ_ONLY]comment of CtReturn
normal;[READ_ONLY, READ_ONLY]comment of CtStatementList
normal;[READ_ONLY, READ_ONLY]comment of CtSuperAccess
normal;[READ_ONLY, READ_ONLY]comment of CtSwitch
normal;[READ_ONLY, READ_ONLY]comment of CtSynchronized
normal;[READ_ONLY, READ_ONLY]comment of CtThisAccess
normal;[READ_ONLY, READ_ONLY]comment of CtThrow
normal;[READ_ONLY, READ_ONLY]comment of CtTry
normal;[READ_ONLY, READ_ONLY]comment of CtTryWithResource
normal;[READ_ONLY, READ_ONLY]comment of CtTypeAccess
normal;[READ_ONLY, READ_ONLY]comment of CtTypeParameter
normal;[READ_ONLY, READ_ONLY]comment of CtUnaryOperator
normal;[READ_ONLY, READ_ONLY]comment of CtUsedService
normal;[READ_ONLY, READ_ONLY]comment of CtVariableRead
normal;[READ_ONLY, READ_ONLY]comment of CtVariableWrite
normal;[READ_ONLY, READ_ONLY]comment of CtWhile
normal;[READ_ONLY, READ_ONLY]implementationType of CtProvidedService
normal;[READ_ONLY, READ_ONLY]moduleDirective of CtModule
normal;[READ_ONLY, READ_ONLY]moduleRef of CtPackageExport
normal;[READ_ONLY, READ_ONLY]parameter of CtLambda
normal;[READ_ONLY, READ_ONLY]typeMember of CtAnnotationType
normal;[READ_ONLY, READ_ONLY]typeMember of CtClass
normal;[READ_ONLY, READ_ONLY]typeMember of CtEnum
normal;[READ_ONLY, READ_ONLY]typeMember of CtInterface
normal;[READ_ONLY, READ_ONLY]value of CtAnnotation
normal;[READ_ONLY, READ_ONLY]value of CtEnum

... so there are still some MUTABLE_ATTACHED_INCORRECT collections, which should be fixed ... but in different PR

@pvojtechovsky pvojtechovsky changed the title WIP: test: collections contract WIP: test: spoon model collections contract Sep 27, 2018
@monperrus
Copy link
Collaborator

Pass to close staled PRs. Feel free to reopen if appropriate.

@monperrus monperrus closed this Jun 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants