Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
S
SDG
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Program Slicing
SDG
Commits
20b60fed
Commit
20b60fed
authored
4 years ago
by
Carlos Galindo
Browse files
Options
Downloads
Patches
Plain Diff
remove unrelated comments from test case
parent
f8b7a13a
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!52
Dynamic initializerDeclaration in ConstructorDeclaration
Pipeline
#77
passed
4 years ago
Stage: test
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
sdg-core/src/test/res/regression/dinsa-tests/Josep8.java
+0
-43
0 additions, 43 deletions
sdg-core/src/test/res/regression/dinsa-tests/Josep8.java
with
0 additions
and
43 deletions
sdg-core/src/test/res/regression/dinsa-tests/Josep8.java
+
0
−
43
View file @
20b60fed
...
...
@@ -44,46 +44,3 @@ class B extends A{
void
noModificaxA
()
{
System
.
out
.
println
(
"useless"
);}
void
siModificaxA
(
int
v
)
{
super
.
siModificaxA
(
v
);}
}
// 1. :D Definir this como -output- al final de los constructores.
// 2. Hay que copiar el arbol al usar un Movable para generar un nodo.
// 3. Hay que utilizar el arbol para generar el arbol de nodos correspondiente
// 4. En las llamadas a super que se resuelven a Object.super(), hay que definir 'this'.
// Por tanto todos los constructores empezaran [in]directamente por una definciion de this,
// y 'this' nunca se buscara en Interprocedural*Finder
// PARA RESOLVER problemas con this
/*
2. Cada vez que se define/usa un miembro, se realiza la misma accion para todos
los padres en el arbol (use(a.x) es tambien use(a)): podemos utilizar el arbol de ayer
3. siempre conectemos una actual/formal a un uso/def tenemos que copiar el arbol
(en actual cambiando el nombre de la raiz -- cambiar raiz y todos sus arcos).
*/
/*
Interprocedural*Finder: cuando se define this en un constructor hay qeu pasarlo de vuelta
a) es una creacion de obj normal: se traduce como retorno de la llamada.
b) es una creacion de obj con super()/this(): se traduce a 'this': se copia el arbol
*/
/*
cuando super() defina x, y, z, la salida DEF(this) que contendra las variables definidas.
buscara un DEC(this) y lo encontrara justo antes (INTRA)
el DEF(this) servira como elemento INTRA para enlazar el resto de statements del constr.
*/
/*
Preservar el orden de acciones al usar arboles:
Cuando se encuentra una accion repetida (e.g. USE(a.x), DEF(a.x), **USE(a.x)**),
tenemos que quitar del Factory la accion vieja (el primer USE(a.x), que sea un USE(a)
y contendra en su arbol (a.x)).
Ejemplo:
print(a.x++ + a.x); USE(a.x), DEF(a.x), USE(a.x)
Y despues de la visita se tratan las definiciones, pasando a ser:
USE(a.x), USE(a), DEF(a.x), DEF(a), USE(a.x), USE(a)
Modificamos el Interprocedural*Finder para solo tratar los elementos raiz.
Incluso podemos incluir una referencia al hijo en el raiz (USE(a) contiene USE(a.x))
Problema:
print(a.y++ + a.x + a.x++):
*/
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment